Juventus eventually earned a 2-0 victory after Chievo went down to nine men for two utterly bizarre red cards for Samuel Bastien and Fabrizio Cacciatore.
Cagliari held on with 10 men for an entire half in this relegation dogfight, but Crotone had a goal disallowed in stoppages amid controversy.
Hellas Verona earned a surprise 4-1 victory at the Stadio Franchi, but Fiorentina can blame both bad luck and some dismal defending.
Valon Behrami’s strike proved decisive for Udinese, although Genoa had more chances and the visitors were reduced to 10 men.
Lazio remain in third place despite their 2-1 defeat at San Siro, but there was controversy as Patrick Cutrone appeared to score with his arm.
Rodrigo Palacio had put Bologna in front after 25 seconds, but Napoli came back with a Dries Mertens brace – including a soft penalty.
Sampdoria intensified the Roma crisis with a surprise 1-0 victory, as Emiliano Viviano saved Alessandro Florenzi’s penalty before a Duvan Zapata winner.
Atalanta confirmed their familiarity with the Mapei Stadium, their home away from home, with a 3-0 victory over Sassuolo.
Inter thought they had their first win in two months, but Alberto Paloschi earned a last-gasp SPAL equaliser after Francesco Vicari’s own goal.
Torino made short work of bottom club Benevento, but Vid Belec got himself sent off for a karate kick on M’Baye Niang.