Uruguay forward Edinson Cavani replied for Napoli with his 100th Serie A goal and 17th of the season to take his side level on points with Lazio in second place.
The two sides had served up a dismal opening half hour, punctuated by cynical fouls, bickering and five yellow cards, before Roncaglia inadvertently put hosts Fiorentina in front in the 33rd minute.
From just inside his own half, the Argentine defender floated a long ball forward into the Napoli penalty area where it was completely mis-judged by De Sanctis, flew over the goalkeeper's head and bounced into the goal.
The usually dependable De Sanctis also collided with a defender while Roncaglia sheepishly celebrated.
Cavani spared Napoli's blushes nine minutes later when he scored with a glancing header following a low free kick from the left.
Napoli could have won it in the second half but were denied by Fiorentina goalkeeper Neto who produced a miraculous save to stop Goran Pandev's header from six metres on the line.
Napoli and Lazio both have 43 points from 21 games, five behind Juventus who thumped Udinese 4-0 on Saturday. (Writing by Brian Homewood in Berne, editing by Alan Baldwin)
- Sports & Recreation