Andrea Petagna earned Atalanta a point against Fiorentina with his first Serie A goal since September, but Nikola Milenkovic saw red.
It was an absolute thriller at the Stadio Vigorito, as Benevento beat Crotone 3-2 with a last-gasp goal from January signing Cheick Diabate.
Bologna saw off local rivals Sassuolo for a much-needed win thanks to Erick Pulgar’s precise long-range free kick.
Emanuele Giaccherini transformed the game, providing a goal and assist for Roberto Inglese, as Chievo beat Cagliari for their first win since November.
Inter’s revival was short-lived, as they went down 2-0 to Genoa after a bizarre Andrea Ranocchia own goal and Goran Pandev poacher’s finish.
Ciro Immobile broke his goal drought with a brace as Lazio swept Hellas Verona aside 2-0 to surge into fourth place, ending their crisis.
It was an incident-packed game with a saved penalty and VAR decisions, but ultimately decided by a Jack Bonaventura strike as Milan beat Sampdoria to go joint sixth.
Allan finished off a wonderful Napoli team move, but that proved enough to squeeze past SPAL and set a new all-time club record.
Despite losing Gonzalo Higuain to injury, Alex Sandro tapped in a Federico Bernardeschi assist as Juventus doomed Torino.
Cengiz Under hit another screamer for his fourth goal in three games, giving Roma another hard-fought 2-0 win away to Udinese.