Juventus' 22-match unbeaten run in Serie A came to an end on Sunday while Roma's 2-0 win at Sassuolo was shrouded in controversy.
Defending champions Juve went into their match on the back of seven straight wins in the league but had no answers to Napoli in a 2-0 defeat.
Jose Callejon gave the home side a 37th-minute lead, despite appearing to be offside, rounding off an impressive first-half performance.
Juve goalkeeper Gianluigi Buffon was in inspired form, making a string of saves, but he could not prevent substitute Dries Mertens doubling Napoli's lead with nine minutes to go.
Defeat for Juve - only their second in Serie A in 2013-14 - means their lead at the top of the table stands at 11 points after Roma won 2-0 earlier in the day at Sassuolo, but Antonio Conte's men remain very much in line to secure a third successive title.
Referee Nicola Rizzoli won the headlines at Sassuolo after awarding the hosts a penalty – only to then revoke the decision.
Rizzoli, who will represent Italy at the FIFA World Cup, saw Roma take the lead in the 16th minute as Mattia Destro made it four goals in as many games.
He then awarded the controversial spot-kick in the 36th minute when Nicola Sansone went down under a challenge from Roma's Mehdi Benatia.
The challenge appeared innocuous but the official gave a penalty and, despite ongoing protests, the ball was on the penalty spot before Rizzoli changed his mind.
Benatia later claimed that the goal-line assistant referee had told Rizzoli to award a spot-kick but, after discussions with Sansone, the man in charge decided against it.
Protests continued at half-time and relegation-threatened Sassuolo conceded a second when Michel Bastos scored late on.
Antonio Candreva's stoppage-time winner spared Lazio's blushes in a 3-2 home win over Parma.
With fans continuing to protest at Lazio, another sparse crowd at Stadio Olimpico witnessed a shambolic own goal with just nine minutes left.
Lazio defender Mickael Caini – a first-half substitute – intercepted a cross destined for Parma's Antonio Cassano at the back post.
Yet Caini let the ball bounce before he and goalkeeper Federico Marchetti looked at each other, with the ball agonisingly going through the latter's legs.
That levelled proceedings at 2-2 but Candreva struck late for Lazio.
Other results on Sunday saw Luca Toni strike twice as 10-man Verona beat Genoa 3-0, while Torino edged Cagliari 2-1 and Sampdoria and Fiorentina played out a goalless draw.