After the Bianconeri left it late to beat Lazio 1-0 earlier in the day, Paulo Dybala scoring a stoppage-time winner for the reigning champion, Maurizio Sarri's side fluffed its lines at Stadio San Paolo.
Edin Dzeko scored twice as Roma rallied after conceding early to move up to third in the table above Lazio and Inter Milan, which faces AC Milan in the Derby della Madonnina on Monday (AEDT).
Lorenzo Insigne had put Napoli ahead after just six minutes, diverting Mario Rui's cross from the left into the net via a deflection off defender Kostas Manolas.
However, Roma hit back almost immediately, the in-form Cengiz Under seeing his shot strike the unfortunate Mario Rui before looping over Pepe Reina's head.
After heading in Alessandro Florenzi's cross to make it 2-1 midway through the first half, Dzeko produced a sublime left-footed curler in the 73rd minute to put clear daylight between the sides.
Diego Perotti capitalised on a poor clearance from Mario Rui to add a fourth and while Dries Mertens struck in added time, it was no more than a consolation.
While Napoli remains on top in the standings, it now sits just a point clear of Juventus, which has a game in hand, in what is a fascinating two-horse race for the title.