Runaway leaders Internazionale saw their title procession halted after a goalless draw at struggling Reggina.
The point helps keep Reggina out of the bottom three as they fight to avoid relegation.
Roma warmed up for their clash with Manchester United with a 2-0 win at Catania.
Francesco Tavano fired Roma in front on 37 minutes and Mirko Vucinic made sure of the win with Roma's second goal seven minutes from time.
Milan beat high-flying Empoli 3-1 to close in on a UEFA Champions League place.
Ronaldo's early opener (12) was cancelled out by Luca Saudati (43), but Milan restored their advantage one minute before half-time thanks to Alberto Gilardino (44).
Giuseppe Favalli then secured all thee points for Milan after 78 minutes.
Lazio maintained their fine run of form with a 1-0 victory over struggling Messina.
Guglielmo Stendardo scored the only goal of the game right on the stroke of half-time to cement Lazio's place in third spot.
To compound a miserable day for Messina former Roma defender Vincent Candela was sent-off for two bookable offences.
Fiorentina piled the misery on basement boys Ascoli with a 4-0 win at the Artemio Franchi.
Ferreira Reginaldo set Fiorentina on their way with the opener after just five minutes and Riccardo Montolivo doubled the advantage right on the stroke of half-time.
Luca Toni added a third for the Viola on 56 minutes and former Everton defender Per Kroldrup made it 4-0 18 minutes from time.
Parma boosted their survival hopes with a 1-0 win over Livorno.
Aparecido Cesar was sent-off for Livorno eight minutes from time and Manchester United loan star Giuseppe Rossi made Parma's numerical advantage count with the winner in the final minute.
Sampdoria kept alive their hopes of qualifying for Europe with a 1-0 success against Torino.
Emiliano Bonazzoli netted the all-important goal for Samp on 16 minutes and Torino ended the game with ten men following the sending off of Roberto Muzzi.
Cagliari shocked Palermo with a 3-1 win at La Favorita.
Palermo got off to a dream start with Mark Bresciano firing them in front after just three minutes, but things turned sour for the home side when Giuseppe Biava was sent-off on 27 minutes.
Cagliari hit back and levelled matters on 38 minutes with David Suazo converting from the penalty spot.
Simone Pepe gave Cagliari the lead eight minutes from time and Suazo wrapped up the win with his second of the contest on 86 minutes.
Chievo remain in trouble after going down 1-0 at Atalanta.
Lorenzo D`Anna was sent-off for Chievo on 53 minutes and Cristiano Doni scored from the resulting penalty to give Atalanta the lead.
Atalanta were reduced to ten men when Simone Loria saw red five minutes from time, but there was still time for Chievo to lose another man with Luciano De Oliveira being sent-off in the dying seconds.
Siena came from two goals down to draw 2-2 with Udinese.
Antonio Di Natale broke the deadlock two minutes before the break and Vincenzo Iaquinta doubled the lead on the hour mark.
Massimo Maccarone pulled a goal back for Siena on 76 minutes and Paolo Negro completed the comeback with Siena's second nine minutes from time
Click on fixture for full match summary