Messi pounced on a Fernandinho slip to nudge Barca in front on 17 minutes, and the Argentine doubled his tally on the hour following the dismissal of City goalkeeper Claudio Bravo.
The Chile international, who left the Camp Nou in August to replace Joe Hart at City, was sent off for a blatant handball outside the area having knocked his misplaced clearance straight to Luis Suarez.
Neymar missed a late penalty but atoned with Barca's fourth soon after as the Spaniards made it three wins from three to take control of Group C, while goals from Lars Stindl and Andre Hahn handed Borussia Moenchengladbach their first points of the competition with a 2-0 win at Celtic.
In Munich, Carlo Ancelotti's Bayern dismissed concerns about their performance of late by ending a three-match winless run at home to PSV Eindhoven.
Luciano Narsingh gave PSV hope when he halved the deficit shortly before the break, but Poland striker Robert Lewandowski eased fears of another setback with Arjen Robben netting Bayern's fourth.
- Ozil buries Ludogorets -
==========================
Mesut Ozil netted a second-half hat-trick as Arsenal thrashed Ludogorets Razgrad of Bulgaria 6-0, the German piling on the misery for the visitors after goals from Alexis Sanchez, Theo Walcott and Alex Oxlade-Chamberlain.
Paris Saint-Germain also have seven points in Group A, but the French champions rode their luck in a 3-0 win over Basel.
Brazilian Lucas doubled PSG's lead on 62 minutes, with Basel defender Marek Suchy then heading against, before Edinson Cavani netted his 17th goal for club and country this term courtesy of a stoppage-time penalty.
Napoli's hopes of becoming the first side through to the last 16 were dashed as Vincent Aboubakar struck twice in Italy to earn Besiktas an impressive 3-2 victory.
Adriano put the Turkish champions ahead on 12 minutes in Naples, but Belgian winger Dries Mertens replied on the half hour.
But Cameroon international Aboubakar struck again four minutes from the end to move Besiktas to within a point of leaders Napoli in Group B.
Benfica also registered their first win thanks to an Eduardo Salvio penalty and a Franco Cervi goal in their 2-0 triumph away to Dynamo Kiev.
