City asserted themselves from the off and their early dominance told after 20 minutes when Kevin de Bruyne tucked away a penalty after he was clumsily brought down by Romain Saiss, before Pep Guardiola's side doubled their lead 12 minutes later, when an intricate passing move was finished off by Phil Foden. Wolves pushed in the second half and they found a route back into the game when Raul Jimenez headed home a Daniel Podence cross after 78 minutes, but City had the final say when Gabriel Jesus's effort deflected home with what was virtually the last kick of the game.
This was an excellent performance from a City side that looked keen to make a statement of intent ahead of another tilt at the title. There was an extra injection of speed in the movement of the ball from the visiting midfield, while their aggression out of possession stifled a Wolves attack that struggled to impose themselves for large periods.
If we're being picky you'd have to say that last year's Premier League runners-up gave Wolves one too many openings in a second-half spell that saw the hosts eke out a string of chances that culminated in Jimenez's goal.
Manager rating out of 10
7 -- Guardiola tweaked the shape of the team's spine to create a midfield impasse for a Wolves outfit that struggled to create in central areas.
Player ratings (1-10; 10 = best, players introduced after 70 minutes get no rating)
GK Ederson, 6 -- The Brazil keeper could have taken an evening nap in his own six-yard box such was the lack of work he had to do in the first half, but he had a busier time of it in the second period.
DF Kyle Walker, 7 -- Played with the intensity of someone with a point to prove after his red card for England against Iceland earlier in the month, and the Man City No. 2 was constantly looking to make things happen out wide.
DF John Stones, 6 -- A quiet first half for the centre-back, but he did get caught out by consecutive balls over the top of the City defence, which on another night could have led to Wolves goals.
DF Nathan Ake, 7 -- The debutant wasn't afraid to put himself about and let Jimenez know he was there, and the summer signing from Bournemouth looked well at home in a City shirt.
DF Benjamin Mendy, 7 -- Picked up a 35th-minute booking for tripping Adama Traore as the winger looked like wriggling away from the Frenchman, but the City left-back kept the Wolves danger man quiet for large periods.
MF Fernandinho, 6 -- The 35-year-old has been more efficient in possession than he was on this occasion, but the midfield veteran was still excellent defensively and helped maintain a solid central shape.
MF Rodri, 7 -- A classy performance in the heart of midfield, and the former Atletico Madrid man nearly scored a stunning goal at the end of the first half with a beautifully hit volley that flew just past the post. Picked up a yellow late on.
MF Phil Foden, 7 -- On hand to tuck home a Raheem Sterling cutback just after the half-hour mark to put City firmly in control, and the youngster is starting to show real swagger as he goes about his business.
MF Kevin de Bruyne, 8 -- Forced a comfortable save from Rui Patricio with a long-range free kick early on, but the Wolves stopper had no chance against the Belgium international's excellent 20th-minute penalty. He then turned part provider for City's second with a cute pass for Sterling shortly after.
MF Raheem Sterling, 7 -- Showed some great bursts of pace to get in-behind the Wolves back line, before selflessly pulling the ball back for Foden to put City 2-0 ahead. Replaced by Ferran Torres after 81 minutes.
FW Gabriel Jesus, 6 -- Picked up a pretty cheap yellow for leaving one on Wolves centre-back Conor Coady in the first half, but the Brazilian battled away and deserved a slice of luck when his deflected shot cannoned home at the death.
MF Ferran Torres, N/R -- Unable to really get into the game in the closing stages.