Haaland struck twice in the second half against the team he supported as a boy due to his father Alfe-Inge’s time as a player at Elland Road.
The Leeds-born Norway striker notched his 25th and 26th goals in 20 appearances for City this season after Rodri had broken the deadlock in first-half stoppage time.
Pascal Struijk headed in a 73rd-minute corner for Leeds, but although that lifted the home faithful and prompted a late flurry from his side, the result was never in doubt.
Pep Guardiola’s side, who last week knocked Liverpool out of the Carabao Cup, bounced back from their home league defeat to Brentford before the World Cup break and climbed to within five points of top spot.
Haaland threatened to open the scoring after just 30 seconds as he raced on to a ball over the top and forced Illan Meslier to save.
Kevin De Bruyne curled City’s next effort wide six minutes later and bent a superb cross just out of Ilkay Gundogan’s reach soon after.
Gundogan flashed a low shot narrowly off target and after Leeds had worked tirelessly to contain City for the next 20 minutes, Haaland forced Meslier into another crucial save with his legs after being slipped in by De Bruyne.
Willy Gnonto blazed Leeds’ first effort on goal way over the crossbar in the 34th minute as the home side spent most of the first period in their own half.
Grealish spurned two golden chances with mis-cued efforts from in front of goal, but just when Leeds appeared to have kept the champions at bay until the interval, Rodri broke the deadlock.
Riyad Mahrez’s low angled drive was saved by Meslier and the Spain midfielder turned home the rebound for his first goal of the season.
The same pattern resumed at the start of the second half as City patiently retained possession and the visitors were gifted a second goal in the 51st minute.
Skipper Liam Cooper’s mis-placed pass to fellow centre-half Robin Koch was snaffled by Grealish and after racing clear on goal the England forward squared the ball for Haaland to steer home.
Gundogan was denied a third for City by Rasmus Kristensen’s last-ditch tackle on the hour-mark and, sensing the game was up, Leeds’ fans took to teasing their former favourite Kalvin Phillips.
The City midfielder, back among the City substitutes after being left out of the squad for being overweight, was welcomed to chants of ‘you’re too fat to play for Leeds’ as he warmed up on he touchline.
Phillips’ grin grew wider shortly after as Haaland put City 3-0 up in the 64th minute, firing home first-time following another excellent assist from Grealish.
Leeds gave the home faithful something to cheer in the 73rd minute when Struijk beat his marker Manuel Akanji to head home Sam Greenwood’s corner.
Haaland was foiled by Meslier when the Norwegian looked odds-on to complete his hat-trick, while at the other end Leeds substitute Joe Gelhardt was a whisker away from guiding home Greenwood’s pass inside the area.