Luis Muriel opened the scoring within three minutes, but Atalanta fought back for a 3-1 victory over Fiorentina, another hugely enjoyable and emotional match.
Inter collapsed to a 2-1 defeat in Cagliari, despite Nicolò Barella missing a stoppage-time penalty, as Leonardo Pavoletti’s volley proved decisive.
Parma took the lead three times at the Stadio Castellani, but on every occasion Empoli clawed them back in a 3-3 thriller.
Frosinone had Francesco Cassata sent off after just 34 minutes, but held out for an unexpected point against Genoa at Marassi.
Roma could’ve caught Inter in fourth place with a win, but Lazio instead put themselves right back in the Champions League race with a dominant 3-0 Derby della Capitale victory.
Milan did the bare minimum to scrape past 10-man Sassuolo thanks to an unlucky Pol Lirola own goal, but still fly into third place ahead of Inter.
Juventus emerged with a dramatic and controversial 2-1 win at the Stadio San Paolo, with Alex Meret and Miralem Pjanic sent off, Lorenzo Insigne missing a late penalty.
Fabio Quagliarella scored two splendid goals and hit the woodwork twice for this Sampdoria victory, but SPAL were once again furious with VAR decisions.
Andrea Belotti finally got his first goal of 2019 with a screamer, as Torino beat Chievo 3-0 with two goals in stoppages to continue their European push.
Ignacio Pussetto won a penalty and scored the decisive goal as Udinese saw off Bologna in a potentially crucial relegation dogfight.