City were dominant in the first half, with the visitors' 16 shots to Leeds' one telling the tale of the match. But it took until added time at the end of the opening period to break the deadlock, when Rodri prodded the ball past Illan Meslier, after the French goalkeeper had denied Riyad Mahrez.
Grealish was again the provider for Haaland's second on 64 minutes, the Norwegian scoring his 20th goal in only 14 Premier League matches, beating Kevin Phillips by seven matches to become the fastest player to reach that mark in the competition.
Pascal Struijk pulled a goal back for Leeds with 17 minutes remaining, but City held firm for the three points.
City move five points behind leaders Arsenal, while Leeds remain in 15th place on 15 points, two clear of the relegation zone.
Former Liverpool manager Brendan Rodgers returns to Anfield as Leicester City target a fourth consecutive away win and clean sheet, while the Reds, who on Wednesday announced the signing of Dutch forward Cody Gakpo, also have a fourth straight victory in their sights.