Lorenzo Insigne scored his 100th goal for Napoli to earn his side a 1-0 win over Juventus in Saturday's Serie A clash, easing some of the growing pressure on boss Gennaro Gattuso.
Juve had won their last three top-flight games by the same 2-0 scoreline but their title prospects took another dent with defeat to a spirited Napoli side at Estadio Diego Armando Maradona.
Giorgio Chiellini marked his landmark 400th Serie A appearance by giving away a penalty that was put away by Insigne for what proved to be the only goal of the contest.
Cristiano Ronaldo and Alvaro Morata went close to equalising but the visitors, who beat Napoli 2-0 in last month's Supercoppa Italiana, could not find a way through.
Napoli were already without a number of key men and lost first-choice goalkeeper David Ospina to injury in the warm-up, meaning a late call-up to the side for Alex Meret.
The hosts were fortunate to see Federico Bernardeschi balloon a promising chance into the stands but they took the lead 31 minutes in through Insigne's powerful penalty.
Chiellini jumped with his arm and caught Amir Rrahmani in the face, which VAR adjudged was worthy of a spot-kick, and Insigne did not waste the chance to bring up his century.
Juve, who had not conceded in their previous three Serie A games, should have been level early in the second half but Ronaldo fired straight at Meret from close range.
Meret was also equal to Federico Chiesa's drive and Morata had a goal ruled out following another Chiellini foul on Rrahmani in the build-up as Juve continued to press.
A final chance fell Morata's way late on but he could not get the better of inspired Napoli keeper Meret, who produced a fine save with his legs to help his side to a huge win.
What does it mean? Crucial defeat for Juve
Andrea Pirlo said ahead of this match that he felt sympathy for opposite number Gattuso, who was reportedly set to be sacked had Napoli lost today.
But it is now Pirlo who will be back under pressure following this third league loss of the campaign, which leaves Juve seven points off Milan ahead of the leaders' trip to Spezia later on Saturday.
Napoli, despite having to contend with a growing list of injuries, are now just two points behind their opponents after recording their first successive home league wins in this fixture since 2011.
Napoli captain Insigne missed a penalty in last month's Supercoppa clash but kept his cool from 12 yards here by thumping the ball into the roof of the net.
He is the seventh person to reach a century of goals for Napoli in all competitions, but the first Italian-born player to do so.
Chiellini costs Juve
Juve's run of six clean sheets in seven matches prior to today had coincided with Chiellini's return to the side, though the centre-back's landmark league outing did not go to plan.
He led the way in terms of passes (108) and touches (123), while no player on the field could better his four tackles, but this game will ultimately be remembered for his costly foul on Rrahmani.
Key Opta Facts
- Only Diego Maradona and Antonio Vojak (both five) have scored 10+ goals in more seasons than Insigne (four) with Napoli in Serie A.
- Prior to Insigne, Napoli's only player to have scored in two consecutive matches against Juventus in Serie A in the three points for a win era was Marek Hamsik (in March 2010).
- Gattuso and Pirlo faced each other in Serie A for their first time since Reggina v Milan, in April 2000 (20 years, 297 days ago), when Pirlo scored a goal from a direct free-kick.
- Rodrigo Bentancur played his 100th match in Serie A.
Juventus travel to Porto for the first leg of their Champions League last-16 tie on Wednesday and host Crotone on their return to Serie A action five days later.
Napoli are also in European action in midweek with a Europa League last-32 first-leg clash at Granada, before then travelling to Atalanta in the league on February 21.