Roma handed the Scudetto to Juventus with a 4-1 humiliation at bottom of the table Catania, who could still survive.
Torino had to rely on an own goal to get the better of 10-man Chievo, but the result is crucial for Europe and safety races.
Giuseppe Rossi scored on his Serie A comeback, but Domenico Berardi’s hat-trick gave Sassuolo a shock 4-3 victory at Fiorentina.
Bologna earned a precious point against stuttering Genoa to keep their hopes of safety alive.
Simone Padoin gave Juventus a 1-0 win over Atalanta in this celebration of a third consecutive Scudetto.
Verona twice fought back from a goal down, but 10-man Lazio snatched a 3-3 draw in stoppages despite a penalty save.
A rare Nigel De Jong header gave Milan some bragging rights over Inter and all three points in the Derby della Madonnina.
Napoli swept 10-man Cagliari aside 3-0 at the San Paolo, but Marek Hamsik missed a penalty.
Parma got back on track by beating Sampdoria 2-0 with Antonio Cassano netting against his old club.
An extraordinary first half with seven goals and a saved penalty saw Udinese crush Livorno 5-3, sending them to the foot of the table.