Bologna broke away from the relegation zone with a thumping 3-0 victory over Europe-chasing Sampdoria, but Emil Audero had a nightmare.
Joao Pedro converted a penalty to give Cagliari a potentially decisive victory for the race to avoid relegation, as Frosinone slide closer to the inevitable.
SPAL came back twice for a spectacular and potentially decisive victory, ending Empoli’s six-match unbeaten home run, in a 4-2 thriller.
Cristian Ansaldi blasted in the winner against his former club, as Torino closed within three points of fourth and sent Genoa into more trouble.
Stephan El Shaarawy’s early stunner was eventually answered by Ivan Perisic, as Inter and Roma take a point apiece in this fight for the top four.
Juventus fought back from a furious Fiorentina first half performance to win 2-1 and celebrate their eighth consecutive Scudetto.
Lazio saw their top four hopes collapse after a shock 2-1 home defeat to already-relegated Chievo, as Sergej Milinkovic-Savic was sent off for a reaction foul.
Atalanta completed a marvellous comeback to beat Napoli at the Stadio San Paolo and go level on points with fourth-placed Milan.
Milan’s Champions League ambitions are under threat after a disappointing 1-1 draw away to Parma, as the Bruno Alves free kick wiped out a Samu Castillejo header.
Pol Lirola accidentally turned into his own net to gift Udinese a late draw that does little for either the Friulani or Sassuolo.