Goals from Kevin De Bruyne and Phil Foden put a dominant City two goals up at the break.
But Wolves rallied after half-time and City had to weather a ferocious storm, especially for the first 20 minutes or so, before Gabriel Jesus wrapped up the points with the last kick of the game.
What happened?
There were no signs of rustiness as City set about the task straight from kick-off, keeping possession and looking dangerous in attack.
In fact, VAR was called into action with just a couple of minutes on the clock as Raheem Sterling went down under the challenge of Connor Coady, but the technology backed up the on-pitch referee Andre Marriner in that no foul had taken place.
Wolves were being pinned back as City switched play this way, then that and on 15 minutes, De Bruyne tested Rui Patricio with a 20-yard free-kick that the Portuguese tipped over.
It seemed a goal wasn’t far away and on 19 minutes, it came as De Bruyne was felled in the box by a rash Romain Saisse challenge.
De Bruyne tucked the penalty past Rui Patricio who had guessed correctly but couldn’t get his hands to it.
And the Belgian was at the heart of City’s second goal 12 minutes later, sending Sterling into the box on the left and the England forward picked out Foden in the centre and the youngster slotted home confidently from 10 yards.
It was scintillating stuff.
And just before the break, it should have been 3-0 as Gabriel Jesus’ flick on sent De Bruyne clear but this time Rui Patricio made a fine save, pushing the ball over the bar.
Moments later, De Bruyne’s gentle header to Rodrigo saw the Spaniard fire a ferocious curling effort just wide from the corner of the box.
Wolves were better after the break and had four great chances in the first 15 minutes, with the fact Adama Traore was playing in a much more advanced position having plenty to do with the shift in momentum.
City were still creating chances with De Bruyne, Jesus and Fernandinho all going close, but there were definite signs of fatigue from the men in white.
Though City regained some sort of control, it was no surprise when Wolves finally halved the deficit on 78 minutes as Daniel Podence cleverly slipped the ball through De Bruyne‘s legs before curling in a superb cross that Raul Jimenez rose to head home.
City had to dig deep - but dig deep they did - and with the last kick of the game, De Bruyne slipped Jesus in and the Brazilian’s deflected shot sealed a fantastic start to the campaign for the visitors.
Ake’s classy start
Considering he’s only been at the club a few weeks and had never played competitively with his new team-mates, Nathan Ake oozed confidence and class on his City debut.
There may well be sterner tests ahead, but the Dutch defender looked like he’d been in our defence for years rather than days.
He has that innate coolness on the ball that makes it look as though he has all the time in the world.
And in the impressive John Stones, he had the perfect partner for this contest.
Empty Molineux lacks bite
Every club is suffering from a lack of support inside the stadiums, but Wolves perhaps even more than most.
The pre-match build-up would have lifted most sides ahead of kick-off, but with nobody but the fortunate few in attendance, the music and light show meant little.
Anyone who witnessed Wolves’ thrilling win over City just after last Christmas will tell you the noise and sheer will of the home supporters not only pulled the home side back into the contest but inspired them to a 3-2 victory.
Devoid of that backing, Wolves not only failed to roar, they were left to howl at a blue moon that shone brightly in the Black Country, with silver bullets provided by the inspirational De Bruyne.
What it means…
City are off to the perfect start and go to seventh in the embryonic Premier League table with a game in hand over the clubs above.
What’s next?
City begin the defence of the Carabao Cup against Bournemouth on Thursday at the Etihad before hosting top of the table Leicester on Sunday.
How we lined up
Ederson, Walker, Mendy, Ake, Stones, Fernandinho, Rodrigo, Foden, De Bruyne, Jesus, Sterling (Torres 81)