Walter Mazzarri's men needed to win in Rome to stay in touch with Juve, who had opened a six-point gap at the top with victory over Fiorentina earlier on Saturday evening.
But Napoli looked like being sucked towards third-placed Lazio when Sergio Floccari opened the scoring early on.
The game grew more and more frantic as time ticked away, with Campagnaro emerging as a key figure all over the pitch, and the Napoli defender would have the final say with an audacious finish three minutes from time.
Hernanes tried his luck within 90 seconds, only to blast wide, before Antonio Candreva failed to capitalise on a slip from Napoli goalkeeper Morgan De Sanctis.
It did not matter, though, as Lazio would make the breakthrough in the 11th minute.
Abdoulay Konko wriggled free down the right wing to pick out Floccari in the middle and, thanks to some bad marking from Paolo Cannavaro, the Calabrian took his time to control the ball and turn it home with his left foot.
Stefano Mauri leapt on the spot for joy but soon found himself in agony and demanding to be substituted. The Lazio captain, who had managed to stamp on the ball while celebrating, limped off the pitch and was replaced by Senad Lulic.
Candreva twice tested De Sanctis as play resumed and Napoli were struggling to get a foothold in the game.
That changed when Juan Zuniga tested Federico Marchetti's reflexes and Lazio had Lulic to thank for cutting out a dangerous Goran Pandev pass to Edinson Cavani.
Napoli continued to grow in confidence and a fine exchange between Zuniga and Marek Hamsik saw Cavani head the ball firmly against the underside of the bar.
Giuseppe Biava was offside when he clipped the ball home as play resumed and Napoli kept the momentum they had gathered before the break.
Marchetti was composed when he snatched up Campagnaro's cross in the 62nd minute and his next trick was to calmly pluck the ball off Cavani's feet with the Uruguayan bearing down on goal.
Lorenzo Insigne raised eyebrows when he danced past four Lazio defenders only to be tripped by Andre Dias, who picked up a yellow card for his sacrifice.
Napoli soon had Campagnaro to thank for sparing De Sanctis' blushes at the other end as the Argentinian mopped up a woeful error from his keeper that had allowed Lulic a shot at an empty net.
The Azzurri fired one last warning shot before forcing their way back into the game as a Gokhan Inler rocket cannoned off Marchetti's fingertips and the bar for a corner.
The resilient Campagnaro had been Napoli's best player in a frustrating team performance and he confirmed as much with an acrobatic scissor kick that powered the ball into the net.
Louis Saha made his Lazio debut from the bench as the hosts pushed forward in search of a late winner but Floccari could not turn a free header home in stoppage time.