Brazilian striker Amauri put the Bianconeri in front on the hour mark after volleying home Christian Poulsen’s cross.
Slovakian midfielder Marek Hamsik leveled the score four minutes later with a powerful close-range header.
Ezequiel Lavezzi sealed a precious win for Napoli ten minutes from time after taking advantage of a defensive mix-up.
The defeat, which left Juventus in 11th place of the league table with nine points, is likely to increase the pressure on under-fire coach Claudio Ranieri.
Recent reports suggested that the tenure of the Italian tactician, who took over at the club in the summer of 2007, is coming to an end.
Earlier on Saturday, Fiorentina claimed their third successive victory after crushing Reggina 3-0.
A brace from in-form striker Alberto Gilardino and a Giampaolo Pazzini goal gave Cesare Prandelli’s men all three points.