Erling Haaland's first four-goal haul in the Premier League left Manchester City three wins away from an historic fourth successive English league title.
City were given a helping hand they did not need thanks to a favourable 12th-minute penalty decision from referee Craig Pawson.
Haaland sent Wolves keeper Jose Sa the wrong way, then beat the Portuguese from the spot again just before the break after he had been brought down by Nelson Semedo.
In between, the striker had scored with a superb far-post header, climbing to an amazing height unchallenged at the far post, to send Rodri's cross back across goal and into the corner.
Follow live text commentary of Manchester City v Wolves in the Premier LeagueHow did you rate Manchester City's performance? Have your say hereWhat did you make of Wolves' display? Send us your views hereA minute after Hwang Hee-chan had pulled one back for the visitors, Haaland struck again, powering onto Phil Foden's brilliant lofted pass.
It took the Norwegian onto 25 Premier League goals for the season and five clear of Alexander Isak and Cole Palmer in the Golden Boot standings.
Julian Alvarez finished off the scoring five minutes from time to leave City a point behind Arsenal, but now with three games remaining to the Gunners' two.
Free-scoring Haaland
Erling Haaland has scored 13 of his 14 Premier League penalties, failing only against Sheffield United in August this seasonScrolling back through Haaland's incredible scoring feats since his arrival at Manchester City, it was almost a surprise to learn he has never scored four in a Premier League game until this one.
He has scored five twice, at Luton in the FA Cup in February and against RB Leipzig in the Champions League in March last year.
Haaland now has nine hat-tricks. His overall tally for the season is 36.
Incredibly, he is now 87th in the all-time Premier League scoring charts with 61, one more than City legend David Silva, who watched this game from the stands, has a statue outside the stadium and was given a standing ovation in recognition of his trophy-ladened 12 years of service to the club.
It can only be imagined what figures Haaland will reach if he remains at City for that length of time.
For Arsenal, there was a predictability about Haaland's efforts and the overall outcome, that can only make them wonder just where their rivals will drop points.
On paper, City's visit to Tottenham on 14 May is tough. But, as Arsenal themselves proved last week, Ange Postecoglou's side are in poor form and on this evidence would be hard pressed to stop Haaland in his tracks.
More to follow.
Player of the match
HaalandErling Haaland
with an average of 7.47
Manchester City
Squad number9Player nameHaaland
Squad number19Player nameÁlvarez
Squad number17Player nameDe Bruyne
Squad number47Player nameFoden
Squad number5Player nameStones
Squad number10Player nameGrealish
Squad number11Player nameDoku
Squad number16Player nameRodri
Squad number20Player nameBernardo Silva
Squad number24Player nameGvardiol
Squad number27Player nameMatheus Nunes
Squad number6Player nameAké
Squad number8Player nameKovacic
Squad number2Player nameWalker
Squad number25Player nameAkanji
Squad number31Player nameEderson
Wolverhampton Wanderers
Squad number1Player nameJosé Sá
Squad number11Player nameHwang Hee-chan
Squad number12Player nameMatheus Cunha
Squad number8Player nameJoão Gomes
Squad number3Player nameAït-Nouri
Squad number27Player nameBellegarde
Squad number23Player nameKilman
Squad number6Player nameTraoré
Squad number17Player nameBueno
Squad number5Player nameLemina
Squad number24Player nameToti Gomes
Squad number22Player nameNélson Semedo
Squad number4Player nameBueno
Squad number62Player nameChirewa
Squad number21Player nameSarabia
Line-ups
Man City
Formation 4-2-3-1
31Ederson2Walker25Akanji6AkéSubstituted forStonesat 69'minutes24Gvardiol16Rodri8Kovacic20Bernardo SilvaSubstituted forDokuat 80'minutes17De BruyneSubstituted forNunesat 79'minutes47FodenSubstituted forGrealishat 80'minutes9HaalandSubstituted forÁlvarezat 82'minutesSubstitutes
3Rúben Dias5Stones10Grealish11Doku18Ortega19Álvarez21Gómez27Nunes82LewisWolves
Formation 3-5-2
1Sá22Nélson SemedoBooked at 45mins23Kilman24Gomes3Aït-Nouri8João GomesBooked at 66mins5LeminaBooked at 41minsSubstituted forBellegardeat 45'minutes6TraoréBooked at 64mins17BuenoSubstituted forBuenoat 71'minutes11Hwang Hee-chanSubstituted forChirewaat 87'minutes12Matheus CunhaSubstituted forSarabiaat 76'minutesSubstitutes
2Doherty4Bueno21Sarabia25Bentley27Bellegarde30González61Okoduwa62Chirewa63FraserLive Text
Match ends, Manchester City 5, Wolverhampton Wanderers 1.
Second Half ends, Manchester City 5, Wolverhampton Wanderers 1.
Attempt missed. Manuel Akanji (Manchester City) left footed shot from the right side of the six yard box is close, but misses to the right. Assisted by Jérémy Doku.
Corner, Manchester City. Conceded by Toti Gomes.
Attempt saved. Jérémy Doku (Manchester City) right footed shot from outside the box is saved in the centre of the goal.
Substitution, Wolverhampton Wanderers. Tawanda Chirewa replaces Hwang Hee-Chan.
Jack Grealish (Manchester City) wins a free kick in the defensive half.
Foul by João Gomes (Wolverhampton Wanderers).
Goal! Manchester City 5, Wolverhampton Wanderers 1. Julián Álvarez (Manchester City) left footed shot from the centre of the box to the bottom right corner. Assisted by Rodri.
Substitution, Manchester City. Julián Álvarez replaces Erling Haaland.
Jack Grealish (Manchester City) wins a free kick in the defensive half.
Foul by Santiago Bueno (Wolverhampton Wanderers).
Substitution, Manchester City. Jérémy Doku replaces Bernardo Silva.
Substitution, Manchester City. Jack Grealish replaces Phil Foden.
Substitution, Manchester City. Matheus Nunes replaces Kevin De Bruyne.
Attempt saved. Erling Haaland (Manchester City) header from the centre of the box is saved in the top right corner. Assisted by Bernardo Silva with a cross.
Substitution, Wolverhampton Wanderers. Pablo Sarabia replaces Matheus Cunha.
Foul by Josko Gvardiol (Manchester City).
João Gomes (Wolverhampton Wanderers) wins a free kick in the defensive half.
Attempt saved. Mateo Kovacic (Manchester City) right footed shot from the centre of the box is saved in the bottom left corner. Assisted by Rodri.