Cristiano Ronaldo came off the bench to score a late equaliser as 10-man Juventus salvaged a 2-2 draw at Atalanta on Wednesday to move nine points clear of Napoli at the top of Serie A.
Carlo Ancelotti's Napoli missed the chance to cut the gap to the reigning champions after Inter Milan substitute Lautaro Martinez hit a stoppage-time winner in an ugly 1-0 victory at the San Siro marred by racist chants towards Senegalese defender Kalidou Koulibaly.
Juventus coach Massimiliano Allegri decided to rest Ronaldo as the former Real Madrid man did not start a league game for the first time since moving to Italy, but the 33-year-old was needed to level in the 78th minute after Duvan Zapata's double had put the hosts in front following Berat Djimsiti's own goal.
Ronaldo's efforts keep Juventus unbeaten in Serie A, ahead of the final game before the winter break against Sampdoria on Saturday.
"It's a shame because we still wanted to win, but the team did well," said Allegri.
Everything appeared to be going to plan for Juve when they grabbed the lead in only the second minute when Atalanta centre-back Djimsiti completely miskicked Alex Sandro's deflected cross into his own net.
But Zapata put a spanner in the Juve works with a fantastic individual goal midway through the first half, spinning centre-back Leonardo Bonucci with ease before drilling a left-footed strike into the far corner.
Douglas Costa fired wide just after the half-hour mark as the visitors looked to restore their advantage, but the Turin giants were reduced to 10 men eight minutes after half-time when Rodrigo Bentancur was shown a second yellow card for a poor tackle on Timothy Castagne.
Colombian striker Zapata wasted little time in making Bentancur pay, bundling in from almost on the goalline to put Atalanta ahead and score his ninth league goal of the season.
Allegri sent on Ronaldo with 25 minutes remaining, and less than 60 seconds after Robin Gosens wasted a golden opportunity to seal victory for Atalanta, the Portuguese star pounced to nod home from close range.
'Not good for Italian football'
In Milan, Martinez turned in a bouncing cross in the 91st minute as Inter closed to within five points of Napoli, who finished with nine men after Kalidou Koulibaly and Lorenzo Insigne were both sent off late on.
Koulibaly was dismissed with 10 minutes left after two yellow cards in quick succession -- the second for sarcastically applauding the referee. The Napoli centre-back had repeatedly been the target of monkey noises made by home fans throughout the match.
"We asked three times for the match to be suspended and there were three announcements, but the match continued," Ancelotti told Sky.
"The player was irritable, he wasn't in the best state of mind. Usually he's a very calm and professional player but there were these noises throughout the game."
"It looks like an excuse but the player was agitated and irritable. It's not good, not for us, nor for Italian football," he added.
Inter's winning goal came just after their goalkeeper Samir Handanovic pulled off a terrific double save and a follow-up shot by Piotr Zielinski was cleared off the line by Kwadwo Asamoah.
AC Milan's push for a top-four finish took a hit as Gennaro Gattuso's side were held to an uneventful 0-0 draw at struggling Frosinone.
The seven-time European champions have now failed to score in four consecutive league games for the first time since 1984, managing three goalless stalemates in the process.
"To reach our objective of Champions League qualification we can't play the way we did in the first half," Gattuso told DAZN.
"I'm the captain of this ship, so it's only right that I take all the responsibility. It's important for me to understand how to make my players play their best, because right now they're performing below their ability."
Milan slipped to sixth, behind fourth-placed Lazio by three points in the race for Champions League qualification.
Capital club Lazio won 2-0 at Bologna, while Sampdoria leapfrogged Milan into fifth by seeing off rock-bottom Chievo 2-0.
Roma are a point behind Milan in seventh after easing to a 3-1 win over Sassuolo as teenager Nicolo Zaniolo notched his first Serie A goal, while Torino climbed to eighth courtesy of a 3-0 defeat of Empoli.