Despite scoring in his last two appearances, Rolando Bianchi was left on the bench as Giampiero Ventura picked and Paulo Barreto and Riccardo Meggiorini to start upfront. Elsewhere, Danilo D'Ambrosio started at left back with Salvatore Masiello being dropped.
Despite making a promising start, the Granata were behind after only eight minutes when Juan Cuadrado waltzed through the Torino defence before delivering an exquisite chip over the despairing Jean Francois Gillet.
It got worse for Toro less than ten minutes later, as Fiorentina doubled their lead when Borja Valero's perfect cross found an unmarked Alberto Aquilani whose bullet header flew pass Gillet. However, much like the first goal, the Belgian keeper did get a hand to the ball, and he may be disappointed that he was unable save it.
And with just over thirty minutes gone, the game seemed to be well and truly over when Adem Ljajic dispatched an excellent 20 yard free kick into the top corner. The Viola could have even increased Toro's humiliation with a fourth goal, but on this occasion Gillet did well to save Valero's low shot.
However, on the stroke of half time, Mario Santana capitalised on a rare mistake from the Fiorentina midfield before setting up Paulo Barreto, who finished with style to reduce the deficit. And ten minutes after the break, the chances of Toro completing a remarkable comeback were enhanced when the Argentine started (and then finished) and outstanding move as he fired home from the edge of the area.
Even the home crowd were starting to sense that the unthinkable was about to happen, and they had goalkeeper Emiliano Viviano to thank for keeping them in the lead, as he made a great save from substitute Rolando Bianchi's header.
However, with fifteen minutes remaining Toro did get a deserved equaliser, and it was perhaps inevitable that it was former Fiorentina player Alessio Cerci who got the goal. Despite having a poor game by his standards, he produced a moment of quality by curling an unstoppable left footed shot into the top corner from almost 30 yards out.
Just as Toro were beginning to think they had done enough to rescue a point, with five minutes remaining Fiorentina were able to find a winning goal, as the ball ricocheted kindly to Romulo in the area, and he kept his cool to give the home side three vital points.
Matteo Darmian received a second yellow card for a foul on Cuadrado in injury time, and that means that he will now miss the derby against Juventus next week. That upcoming game could explain why Toro started this game so slowly, and whilst the team must be given credit for the way they fought back in the second half, their defensive insecurities continues to be a major worry.