Crystal Palace had not scored a H2H goal at Selhurst Park since Luka Milivojević back in April 2019, but to the surprise of many in South London, that duck was soon broken here.
Only four minutes were on the clock when Adam Wharton’s delicate through ball was pounced upon by Jean-Philippe Mateta, who burst clear and arrowed home an effort off the post.
Cheers from the red halves of Merseyside and North London would have been audible, but City were by no means out of the game and hit back almost instantly through Kevin De Bruyne who unleashed an absolute rocket into the top corner of Dean Henderson’s goal.
From then on, Palace struggled to get out of their own half, and as the hosts were pinned in, De Bruyne thought he’d found the killer pass when he freed Haaland in behind, but a smart Henderson stop kept his side level.
It was City who ended up being rather fortunate to go into the break level pegging though, when Mateta’s eyes lit up at the sight of Rodri’s suicidal back pass, but a Stefan Ortega cruyff turn in the area bailed his side out of a hole.
Pep Guardiola’s side took full advantage of that lifeline within five minutes of the restart too, when Jack Grealish jinked his way to the byline and stood a cross up which Rico Lewis touched down and scuffed home into the corner - not that the elated travelling City faithful cared that his finish wasn’t pleasing on the eye.
The visitors’ third was a bit more like the City everyone’s accustomed to seeing down the years, with a free-flowing move culminating in De Bruyne squaring for Haaland to tap in.
Not to be outdone, the Belgian soon got in on the act again, thundering home his 100th Man City goal from the edge of the area to finish off yet another flowing move.
The game was essentially wrapped up by now, and Guardiola took that opportunity to make a couple of changes ahead of their midweek clash with Real Madrid.
They’ll now sit back and spectate for the weekend as Liverpool and Arsenal take to the stage bidding to keep pace.
Defeat was a bit of a rude awakening for Oliver Glasner’s Palace, but they did at least snatch a late consolation through Odsonne Édouard to send their fans home on a slightly more positive note.
Flashscore Man of the Match: Kevin De Bruyne (Manchester City)