Edinson Cavani's near-post header put the Italians into the lead before Mario Balotelli levelled when he tapped home from two yards out.
But Cavani's low shot early in the second half saw off City, who must now beat Bayern Munich on 7 December to stand any chance of progression.
They also need Villarreal to take at least a point off Napoli in Spain.
It is back to the drawing board for the Blues after they came up short in their biggest Champions League test to date.
The attacking threat which has torn apart the best Premier League defences this season was only sporadically seen in Stadio San Paolo, and City will need it back in full flow if their debut Champions League campaign is not to come to a premature end.
They were greeted by an electric atmosphere in Naples, with one banner calling for "90 minutes of fire".
The visitors were doing their best to dampen the crowd's enthusiasm, but the blue touch paper was lit after 17 minutes when Cavani got in front of his marker to head home a corner.
Roberto Mancini's men were certainly feeling the heat as Cavani, Ezequiel Lavezzi and Marek Hamsik seemingly pulled their defence apart at will.
They were on the back foot and it took a defensive howler to let them back into the game.
Salvatore Aronica gave the ball away to David Silva in the area and the Spaniard's shot was parried into the path of Balotelli, who made no mistake from two yards out.
That gave the Blues some momentum and Aleksandar Kolarov brought a good save out of Morgan De Sanctis just before the half-time break.
However, Napoli were back in front three minutes into the second half when Andrea Dossena's cross was side-footed home by Cavani.
Joe Hart kept City in the game when he made a fine save from Lavezzi, while Mancini signalled his intent when he summoned Samir Nasri from the bench.
As the Premier League leaders pushed men forward they were frequently caught on the break and Hamsik hit the post while Hart had to be alert to deny Christian Maggio.
Sandwiched between those glorious chances, City had a fantastic opportunity of their own when Balotelli got in behind the Italians' defence and forced a fantastic save from De Sanctis.
Sergio Aguero was brought on with 10 minutes to go and he made an instant impact, going close with a shot.
However, perhaps mindful of the ever-present threat of being punished on the counter-attack by Napoli's impressive front three, City left their attacking charge too late and must now place their faith in a Villarreal side who have failed to register a single point in the competition this season.