The win moves Fiorentina up to sixth, just a point behind fifth placed Inter.
Napoli's quest to move to within two points of league leader Juventus suffered a blow after it was held to a goalless draw by Sampdoria.
After a shock 3-0 home defeat in the Europa League by Czech side Viktoria Plzen on Thursday, Napoli had hoped to bounce back immediately.
With Juventus losing to Roma on Saturday, Walter Mazzarri's side had the perfect opportunity to get back on track at the San Paolo.
But it failed to find a way through a stubborn Sampdoria defense and now sits four points off the lead.
"This is not good enough," Mazzarri told reporters.
"If we want to be up there challenging we need more. We need consistency, it makes me angry when he show up and have these unexplainable performances."
Elsewhere, Catania moved up to seventh and within sight of a Europa League place with a 1-0 home over Bologna.
Valter Birsa's 87th-minute winner handed Torino a 2-1 victory over Atalanta, while Juraj Kucka's 33rd-minute goal was enough to see Genoa creep further away from the drop zone with a 1-0 win over Udinese.
A Marco Sau double for Cagliari assured a 2-0 win away to new boys Pescara and moved the Sardinians up to 14th.
In France, Paris Saint-Germain saw its lead at the top trimmed to just three points after it suffered a shock 3-2 defeat at Sochaux.
Without David Beckham, who is expected to make his debut in next weekend's clash with Marseille, PSG took a 29th minute lead through Alex.
Sochaux hit back to lead 2-1 with 54 minutes on the clock before an own-goal brought PSG level with 14 minutes remaining.
But with the game seemingly heading for a draw, Cedric Bakambu popped up to lash home a shock winner and leave PSG shattered.
Lyon remains in second place following a crushing 4-0 win at Bordeaux, while Reims and Saint-Etienne shared a 1-1 draw.