Roma missed the chance to close the gap on leaders Internazionale after being held to a 1-1 draw at Messina.
Alessandro Mancini gave Roma the lead on 39 minutes and that looked like being enough for the Giallorossi until Alessandro Parisi popped up with the equaliser from the penalty spot in the final minute.
Parisi soured his day when he was sent off in the closing stages for his second bookable offence.
Milan moved into eighth spot in the table with a 3-1 win over Reggina at San Siro.
Andrea Pirlo set Milan on their way with the opener after just six minutes and Clarence Seedorf doubled the lead on 35 minutes.
Rolando Bianchi gave Reggina hope when pulling a goal back on 66 minutes, but Alberto Gilardino made sure of the win for Milan with their third goal 12 minutes from time.
Lazio moved into fourth place despite being held to a 1-1 draw at home to Siena.
Tommaso Rocchi gave Lazio the lead just after the hour mark, but Francesco Cozza's strike four minutes from time earned Siena a point.
Palermo cemented their place in third spot with a 2-0 success over Udinese.
Andrea Caracciolo broke the deadlock on 31 minutes and Christian Zaccardo added a second 16 minutes from time.
Atalanta were the biggest winners of the day with a 5-1 victory over Livorno.
Cristiano Doni put Atalanta in control with two quick-fire strikes before half-time (38, 45).
Things got worse for Livorno just after the break when Carmine Coppola was sent off for a second bookable offence.
Marc Pfertzel pulled a goal back for Livorno on 52 minutes, but Massimo Donati restored the two-goal cushion five minutes later.
Luca Ariatti added a fourth on 66 minutes and Nicola Ventola completed the rout with the fifth and final goal in the last minute
Ascoli remain rooted to the bottom of the table after going down 1-0 at Cagliari.
David Suazo scored the winning goal from the penalty spot after 16 minutes to condemn Ascoli to another defeat.
Sampdoria and Fiorentina played out a goalless draw at the Stadio Luigi Ferraris.
Chievo climbed out of the bottom four with an impressive 2-1 win over Catania.
Lorenzo Stovini gave Catania the lead on 39 minutes, but Franco Semioli drew Chievo level just before the hour mark.
Sergio Pellissier grabbed the winner for Chievo on 63 minutes when converting from the penalty spot.
Click on fixture for full match summary