The eyes of the footballing world were on Old Trafford as the neighbours met in the 191st Manchester derby and first since Pep Guardiola’s men matched their 1999 treble triumph.
Haaland scored a spot-kick and unmarked header before playing in Phil Foden to wrap up a 3-0 victory, yet City’s dominance was far greater than the scoreline suggests.
It was an abrupt end to an unconvincing three-match winning run in all competitions for Erik ten Hag’s United, who have now lost five of their 10 opening Premier League games.
Haaland put City ahead midway through the first half from a penalty awarded after the VAR spotted a supposed Rasmus Hojlund tug on Rodri.
Ragtag defending allowed Haaland to head home another in a one-sided win that Foden added late gloss to.
It would have been worse was it not for Andre Onana’s saves on a day when United fans booed Ten Hag’s decision to replace Hojlund.
It was an ugly end to an emotional week for United, who again remembered the late, great Sir Bobby Charlton on Sunday.
Those clad in red and blue applauded in unity before a match that City dominated from the outset.
Just eight minutes were on the clock when Rodri’s diagonal ball was nodded back by Kyle Walker to Foden, who got away a powerful close-range header that Onana stopped.
The ball looped up and would have been bundled home by Haaland was it not for the goalkeeper’s reactions.
It was a let-off and Onana denied Jack Grealish before City were awarded a penalty.
VAR Michael Oliver instructed Paul Tierney to go to the pitchside monitor to review a potential pull by Hojlund on Rodri when a free-kick came over.
The referee eventually pointed to spot and Haaland kept his cool, sending Onana the wrong way and wheeling off in celebration in front of the furious home fans.
That 26th minute gut punch emboldened City and hushed the Old Trafford faithful, leading to tongue-in-cheek chants from away fans comparing the atmosphere to the Etihad Stadium.
City were dominant for the remainder of the opening period as they pushed for a second few could argue with, but United had two big opportunities to level.
First Hojlund roared onto a loose ball and rounded Ederson, before eventually cutting back for Bruno Fernandes to laser over.
In hindsight, the young striker may wish he had gone down after John Stones’ physical defending in the build-up.
United went closer still in stoppage time as Marcus Rashford’s first-time sweeping ball put Scott McTominay behind to take a touch and get away a strike tipped over by Ederson.
That moment increased the volume inside Old Trafford, as did Onana’s outstanding reaction save from Haaland’s close-range header.
It looked like a potentially game-changing moment, but the City sharpshooter would not be denied a second for long.
After Fernandes and Foden traded efforts, the visitors capitalised on United’s poor defensive structure and Bernardo Silva clipped a cross to unmarked Haaland to head home at the far post.
“Mind the gap, Man United” chanted the pocket of elated City fans, who saw Onana prevent Grealish from adding to the 49th-minute header.
The England attacking midfielder sent over a cross-shot as Haaland went down claiming a penalty as the away fans continued to make themselves heard.
A brief flicker of United hope quickly faded as Rashford’s smart touch and strike went across the face of goal, before City returned to the attack.
Onana spread himself well to stop Haaland wrapping up his hat-trick before Ten Hag’s decision to replace Hojlund with Garnacho was met by widespread boos.
Grealish saw a deflected shot fly wide before Onana was eventually beaten again in the 80th minute.
Haaland was the provider this time around. Rodri’s shot was pushed by Onana into the path of the striker, who passed in for Foden to score.
The goalscorer tried to add an overhead kick as some United fans headed for any early exit. Given their side’s poor performance, few could blame them. All they missed was petulance as the clock wound down.