Milan - Piotr Zielinski and Lorenzo Insigne scored in the second-half as struggling Napoli shocked champions Juventus 2-1 to spoil coach Maurizio Sarri's return to the Stadio San Paolo on Sunday.
Sarri had not been back to Naples since being sacked in May 2018 after three successful campaigns, and before moving to Chelsea.
This season he has taken over eight-time reigning champions Juve, a move seen as a betrayal by his former team, the two-time Serie A runners-up.
Juve missed the chance to open up a six-point lead on Inter Milan at the top of the table, after Antonio Conte's side were earlier held 1-1 by Cagliari, their third consecutive draw.
Inter are three points behind Juve with Lazio a further two points adrift in third after city rivals Roma ended Simone Inzaghi's side's 11-match winning streak.
"It is pleasant and exciting to go back," said Sarri despite the whistles and insulting banners of his former fans, reserving his criticism for his "under-par, mentally bland" team.
"We lost a match against an opponent who had done the minimum to win," he added.
"We were passive throughout the game, always halfway between pressure and waiting, we made mistakes."
In Naples, Zielinski broke the deadlock after 63 minutes finishing off a rebound after Insigne was denied by Juve goalkeeper Wojciech Szczesny.
Insigne volleyed in a second after 86 minutes to an explosion of joy among the crowd.
Cristiano Ronaldo pulled a goal back as the game headed into injury time for his 13th goal in nine consecutive games in all competitions.
The visitors pushed for the equaliser but Alex Meret smothered Gonzalo Higuain's goal-bound effort, as Juve crashed to just their second defeat of the season.
Napoli move up to tenth place, 12 points off the Champions League places after ending a run of three consecutive defeats.
"It's a victory for the whole of Naples," said Insigne after his team's first home win in the league since October 19.
In the San Siro, Radja Nainggolan claimed the equaliser for Cagliari against his parent club Inter.
Tensions reached boiling point as Inter's goalscorer Lautaro Martinez was sent off in injury time for arguing with the referee.
The Argentinian reacted with fury, shouting and repeatedly punching the plexiglass at the side of the pitch, as he was led away by his teammates.
Martinez's frustration mirrored that of his team, who have now been held to three consecutive 1-1 draws and taken 11 points from their last seven league games.
Inter made a promising start with Ashley Young having an immediate impact on his debut after arriving from Manchester United, providing the cross which allowed Martinez to head in after half an hour.
But the hosts failed to build on the momentum and the Sardinians stayed in the match until Nainggolan's deflected long-range equaliser on 78 minutes.
Tensions were already high when Martinez went down in a challenge and earned a yellow card for a comment to the referee, promptly earning a straight red for then shouting at the official.
The game ended in chaos with Conte arguing with match officials, before storming off.
"The draw certainly wasn't down to the referee, we only complained because he didn't blow for fouls on our forwards," said captain Samir Handanovic.
"Something is definitely missing from the team because we keep conceding second half goals, and don't kill games off when we have the chance."
Martinez, who has scored 11 league goal this season, now risks missing the Milan derby on February 9 due to a suspension.
Cagliari, in sixth, occupy the final Europa League berth, despite taking just three points from their last seven games.
Roma stall Lazio
Lazio failed to take second place from Inter after Roma ended their club record winning streak, with both goals the result of goalkeeping errors.
Roma's early dominance paid off after 26 minutes when Lazio goalkeeper Thomas Straskosha misjudged Bryan Cristante's long ball for Dzeko, with the Bosnia forward anticipating the goalkeeper's rush, nodding the ball in with the back on his head.
But Lazio pulled level eight minutes later after a Pau Lopez shocker, with the Roma goalkeeper unable to clear an aerial shot and a mix-up with Chris Smalling allowing Francesco Acerbi to tap in.
Paulo Fonseca's side remain fourth, one point ahead of Atalanta, who thrashed Torino 7-0 on Saturday.
Lazio have a game in hand to be played in February against Hellas Verona.