Atalanta fumbled an early 2-0 lead with Luis Muriel’s double, as Riccardo Orsolini came off the bench to inspire Bologna.
Junior Messias bagged a spectacular first half brace to give Crotone the 2-1 victory over Parma and take them off the foot of the table.
The day started badly for Juventus and got progressively worse, as they lost their unbeaten record, falling 3-0 at home to Fiorentina with Juan Cuadrado sent off.
It was an extraordinary thriller, as Milan took the 2-0 lead, were pegged back despite a saved Ciro Immobile penalty, and won it in stoppages with Theo Hernandez.
Lorenzo Insigne’s stoppage-time curler rescued a point for a dismal Napoli and means Torino dropped points from a leading situation yet again.
Roma just about squeezed past Cagliari 3-2 after a Joao Pedro brace, but Jordan Veretout, Edin Dzeko and Gianluca Mancini sealed the win.
Sassuolo welcomed back Francesco Caputo from the start and he found the net in a 3-2 thriller away to Sampdoria.
Genoa had the perfect debut under new coach Davide Ballardini, as they fought back to beat local rivals Spezia in the Liguria Derby and leave the relegation zone.
Benevento continue to march up the table after a shock 2-0 victory away to Udinese, sealed by Gianluca Caprari and Gaetano Letizia.
Inter once again stepped up a gear in the second half to register a seventh straight victory with Lautaro Martinez and Milan Skriniar goals in Verona.