The Bianconeri took an early lead as Alvaro Morata pounced on a Kostas Manolas mistake to race in and net with a lofted finish.
However, Napoli were in complete control and drew level after Matteo Politano tapped in on the hour mark, after Wojciech Szczesny had fumbled a shot, before Kalidou Koulibaly struck the winner late on.
Szczesny 5; De Sciglio 6, Bonucci 6.5, Chiellini 6.5, Pellegrini 6 (’58 De Ligt 6); McKennie 5.5 (’73 Ramsey 6), Locatelli 7, Rabiot 5.5; Bernardeschi 6, Morata 7 (’82 Kean 5), Kulusevski 6.5
Player of the match: Alvaro Morata
The striker had little to work with as Juventus struggled to contain Napoli, but he was alert enough to force Manolas into a costly mistake, whilst his finish was cool and well-taken. He would have liked to have seen more opportunities come his way though.