Juventus scraped a barely-deserved victory at the Dall’Ara thanks to substitute Paulo Dybala, as Bologna had the better of the game and hit the upright in stoppages.
The best opportunities were from free kicks, as Chievo and Genoa shared the spoils in a game low on quality.
Inter went behind after 16 seconds, fought back to lead 3-1, only to be held 3-3 with a 100th-minute Fiorentina penalty in a game dominated by VAR.
Edin Dzeko needed a last-gasp bundle over the line to give Roma this 3-2 victory away to Frosinone, but Kostas Manolas was stretchered off.
Milan continued their march on third place with a 3-0 hammering of Empoli, thanks to Krzysztof Piatek, Franck Kessie and an impressive Samu Castillejo.
Arkadiusz Milik bagged a brace, including a free kick fired under the wall, with Piotr Zielinski and Adam Ounas also on target as Napoli pummelled Parma 4-0.
Fabio Quagliarella converted a penalty, won by Manolo Gabbiadini, to give Sampdoria a much-needed win over decimated Cagliari.
Andrea Petagna converted a penalty to cancel out the impressive Federico Peluso opener, as SPAL held Sassuolo to a stalemate.
Torino pushed their way right back into the race for Europa League spots thanks to a 2-0 victory over suddenly stuttering Atalanta.