For all their possession play, the Viola could not break down Aurelio Andreazzoli's outfit and were forced to watch their former striker take revenge deep into stoppage time
After a tense opening, the Viola took total control of proceedings after the restart only for a combination of wayward finishing, exemplary goalkeeping and Pablo Osvaldo's 92nd-minute header to deny them the chance to move clear of AC Milan in the battle for Serie A's third and final Champions League place.
The purists appeared to be in for an agreeable contest right from the off, with Francesco Totti, the Giallorossi's form player, stinging the palms of Emiliano Viviano from a free kick just three minutes in.
However, the action soon died down and chances came at a premium. Osvaldo, the visitors' most potent attacking threat throughout the evening, almost made Fiorentina pay on the break but Viviano intervened.
Juan Cuadrado was a constant thorn in the Roma defence and saw a low shot rebound off the side-netting, yet his Fiorentina team-mate Stevan Jovetic came even closer when Bogdan Lobont, who broke his nose during the first half, pushed his shot onto the post.
Fiorentina came flying out of the traps after the interval, as Adem Ljajic and David Pizarro woke up from their slumber to rain shots down on Mauro Goicoechea, who had been thrown on in place of Lobont.
Cuadrado then turned up his efforts on the Tuscan side's right flank to ask more questions of the Giallorossi's reserve goalkeeper, most notably sending Alberto Aquilani through on goal only to see the former Liverpool man charged down.
Fiorentina thought they had nicked it when Pizarro's thunderous attempt from distance cannoned off the crossbar, but Osvaldo leapt highest from a corner to settle the match in Roma's favour with just over a minute of injury time remaining.
The defeat means that the shell-shocked Viola remain a point behind third-placed Milan, who host Torino on Sunday night.