Seger för Juventus under söndagen och Serie A skulle i princip vara avgjord.
Napoli ville dock annat och speciellt mittbacken Kalidou Koulibaly.
Senegalesiske mittbacksbjässen nådde i den 90:e minuten högst på en hörna och nickade in matchens enda mål. Juventus första förlust sedan i november.
Nu skiljer i stället bara en poäng mellan lagen och fyra matcher återstår. Juventus ska även möta både Inter och Roma på bortaplan.
1-0-segern för Napoli gör även att lagen ligger lika när det gäller inbördes möten.
Startelvor:
Juventus: Buffon - Höwedes, Benatia, Chiellini, Asamoah - Khedira, Pjanic, Matuidi - Costa, Higuain, Dybala.
Napoli: Reina - Hysaj, Koulibaly, Albiol, Rui - Hamsik, Jorginho, Allan - Callejon, Mertens, Insigne.