Juventus took advantage of AC Milan's defeat by beating Palermo 2-0 to go top of Serie A.
Leonardo Bonucci and Fabio Quagliarella were both on target for Antonio Conte's side in the second half of a one-sided game. The win takes Juve one point clear of Milan in a two-horse race for the Scudetto which looks likely to go down to the wire.
Carvalho Amauri scored an 89th-minute winner as Fiorentina claimed a shock 2-1 win over AC Milan.
Amauri fired home from outside the box to secure three much-needed points for Delio Rossi's side whose unexpected victory lifted them five points clear of the relegation zone.
Milan had taken the lead, going ahead through Zlatan Ibrahimovic's penalty, only to be pegged back by Stefan Jovetic before Amauri's winner.
Inter Milan twice came from behind to force a 2-2 draw against mid-table Cagliari which kept the Nerazzurri in the hunt to salvage Europa League qualification from a miserable campaign.
The Sardinians moved the fixture to the north-eastern city of Trieste due to a dispute with the local council over the renovation of the Sant' Elia stadium in Cagliari, but could scarcely have wished for a better start as Davide Astori fired them in front in the fifth minute.
Inter, who won their opening match under interim coach Andrea Stramaccioni 5-4 against Genoa last weekend, quickly levelled through Argentinian forward Diego Milito. Cagliari regained the lead after an hour's play through Mauricio Pinilla's header but again the advantage was short-lived as Esteban Cambiasso brought Inter back on terms.
Pinilla was shown a second yellow card for his celebration of that leveller.
Lazio moved back into third place and in line for the final Champions League qualification spot with a 3-1 victory over Napoli.
Napoli striker Goran Pandev's 34th-minute equaliser cancelled out Antonio Candreva's opener but Stefano Mauri spectacularly put Lazio back in front after the hour mark and Cristian Ledesma sealed the win from the penalty spot nine minutes from time.
The win allowed Lazio to leapfrog Udinese into third in the A table. The Biancoceleste are now three points clear of Udinese and four points above Napoli with seven games remaining.
Udinese boosted their hopes of securing European football next season with their first win in six games, 3-1 at home to Parma.
Kwadwo Asamoah and Antonio di Natale put the home side in command but Parma refused to throw in the towel and got back into the game with six minutes remaining when Alessandro Lucarelli scored from close range following a corner.
But Asamoah got his second of the match in injury time to end any hopes of a comeback.
AS Roma's bid for a Champions League spot suffered a blow as they slumped to a 4-2 defeat at relegation-threatened Lecce.
Luis Muriel put Lecce ahead in the 22nd minute before David Di Michele doubled his team's lead before the interval. Muriel added his second shortly after the re-start before Di Michele made it 4-0 from the penalty spot before the hour mark.
Roma reduced arrears with strikers Bojan and Erik Lamela scoring late in the game but it was too little too late for the visitors.
The result at the Via del Mare stadium has left Roma in sixth place. Lecce, meanwhile, have kept alive their hopes of survival and are in 18th place, four points behind Genoa, who hold the last position of safety with seven games remaining.
Chievo beat 10-man Catania 3-2 in Verona to take a giant step towards safety.
Michael Bradley put the hosts on their way in the sixth minute but Catania suffered a huge blow in the 18th minute when defender Nicola Spolli was shown a straight red for bringing down Chievo striker Sergio Pellissier in the area and he converted the resulting penalty to make it 2-0.
Catania pulled one back when Marco Andreolli was unfortunate to score an own goal after the half-hour mark. However, Chievo regained their two-goal lead after the restart through Alberto Paloschi.
Substitute Sergio Almiron handed Catania a lifeline four minutes from time but Chievo held on for a vital win.
The result has lifted the Flying Donkeys 11 points clear of the drop zone with seven games remaining. For Catania, defeat spelt the end of an eight-match unbeaten run and left the Sicilians one point clear of Chievo in the standings.
Novara came from behind to secure a 1-1 draw against Genoa, although they could have had more at the Stadio Silvio Piola.
Rodrigo Palacio put the visitors in front in the seventh minute but the rest of the game belonged to Novara, who had to wait until the 68th minute to finally grab an equaliser through Giuseppe Mascara.
Genoa's rearguard proved impossible to breach for a second time and Novara striker Andrea Caracciolo was shown a late red card for a foul borne of frustration.
Alberto Malesani took his place on the Genoa bench after being re-hired to replace axed coach Pasquale Marino.
An injury-time goal from Mattia Destro earned Siena a dramatic 2-1 win at Atalanta.
It was a come-from-behind victory for them too, having trailed to Ezequiel Schelotti`s sixth-minute opener. But they levelled through Marcelo Larrondo's penalty and, with time running out, Destro's effort found the corner and pushed the Bianconeri into the top half of the table, some eight points clear of the drop zone.
Bologna failed to make the most of their dominance as Serie A's bottom club held on for a 0-0 draw at Cesena.
Alessandro Diamanti went closest to a breakthrough with two first-half efforts narrowly off target before he was twice denied by goalkeeper Francesco Antonioli in the second.
Raphael Martinho and Mattia Filippi had Cesena's best efforts but they were rare attacks for the home side, who were forced to hang on for long periods.