Luis Muriel bagged a brace before Duvan Zapata’s goal, but Udinese kept Atalanta on their toes until the final whistle in a five-goal thriller.
Parma fought back twice, and had a goal disallowed, as Dennis Man’s late volley proved enough to take a point off Benevento.
Romelu Lukaku got his 20th Serie A goal of the season and it was enough to beat Bologna, sending Inter eight points clear with a game in hand.
Antonin Barak and Kevin Lasagna got the second half goals, but Cagliari were punished for wasteful finishing in this 2-0 defeat to Verona.
Beppe Iachini’s Fiorentina comeback was a disappointing affair, but considering Franck Ribery was sent off, they did well to grab a point away to Genoa.
Manuel Lazzari and a last-gasp Felipe Caicedo penalty scraped the win for Lazio, after a spectacular Spezia goal, but there were two red cards after a stoppage-time brawl.
Jens Petter Hauge snatched a late equaliser and Franck Kessie hit the woodwork in stoppages, but Milan were poor in a 1-1 draw against 10-man Sampdoria.
Napoli made life far more difficult than it needed to be in their dramatic 4-3 win over relegation-threatened Crotone.
Sassuolo fought back twice to hold Roma in a thrilling 2-2 draw with so many chances and errors at both ends.
Cristiano Ronaldo thanked VAR for his Juventus equaliser, but Torino were the more impressive team in the exciting 2-2 Derby della Mole.