Messi's start to life at PSG had been somewhat muted but he came to life late in the day to seal a hard-fought victory at the Parc des Princes, an important result after a disappointing draw with Club Brugge on matchday one.
PSG made a wonderful start and were quickly in front thanks to Idrissa Gueye, but City had opportunities to pull level, with Raheem Sterling and Bernardo Silva both hitting the crossbar in quick succession.
The visitor was especially dominant in the second period, but they struggled to craft clear-cut chances as PSG picked them off on the break, Messi netting against his former boss Pep Guardiola in the Champions League for a record-extending seventh time.
Gueye may not be renowned for his goalscoring prowess but his eighth-minute finish was his fourth in six this season and a strike of great precision, smashing into the top-right corner when Neymar could not control Kylian Mbappe's cut-back.
The same quality was not exhibited at the other end, though, as Sterling saw his header come back off the bar and Silva inexplicably hit it as well on the rebound.
Kevin De Bruyne escaped a red card for catching Gueye late in the half and he almost set up the equaliser soon after, his corner finding Ruben Dias, whose header tested Gianluigi Donnarumma.
PSG's solid defensive work ensured big chances were otherwise a rare commodity for City, and Messi put the game beyond them 16 minutes from time.
He surged in from the right, played a one-two with Mbappe on the edge of the box and then caressed a first-time finish into the top-right corner.