Quique Setien's side was insipid in the first half and deservedly went behind to Dries Mertens's superb strike after 30 minutes at the Stadio San Paolo.
Napoli lost Mertens to injury early in the second half and its advantage was erased before the hour mark when Griezmann, who had previously cut an isolated figure in attack, thundered home after a flowing move.
The host squandered two golden opportunities to restore its advantage soon after, with Barca ultimately holding on despite Arturo Vidal's late dismissal to take a precious away goal back to Camp Nou in three weeks.
After a quiet opening, the game burst into life after 30 minutes courtesy of a moment of magic from Mertens.
Piotr Zielinski picked out the Belgium international on the edge of the penalty area, where he took a touch and whipped a sumptuous finish past Marc-Andre ter Stegen to put the host side ahead.
Napoli almost doubled the advantage before the interval, but Kostas Manolas flashed a close-range effort past the post.
Barca was a team reborn at the start of the second period and pulled level in the 57th minute, Griezmann slamming home Nelson Semedo's low cross from eight yards.
Ter Stegen twice denied Napoli soon after, first getting down well to paw away Lorenzo Insigne's effort and then racing off his line to block Jose Callejon's strike.
The game ended on a sour note for Barca, with Vidal seeing red for quick-fire bookings – the first for hauling down Mario Rui before clashing heads with the Napoli full-back – and Gerard Pique limping off after landing awkwardly