The marauding Norwegian ended some stubborn West Ham resistance when he dinked a delicate chip into the net after 70 minutes to make him the highest scorer in a single Premier League season.
He also took his tally in all competitions for City in a mind-boggling debut season to 51 -- roughly one for every million pounds City paid Borussia Dortmund for his signature.
"Incredible. He's just 22 -- and still has five games left," City manager Pep Guardiola said. "We expected him to score goals but to break Cole and Shearer record's... he's special."
Treble-chasing City, who began the night in second place after Arsenal's defeat of Chelsea on Tuesday, had twice been denied by the woodwork as they were frustrated by relegation-threatened West Ham in the first half.
But Nathan Ake made the breakthrough five minutes after the interval with a header from a free kick.
Haaland then eased the tension around the Etihad Stadium as he glided on to Jack Grealish's through ball to beat Lukasz Fabianski and move past the 34-goal mark he shared with Andy Cole and Alan Shearer with five games still to play.
Substitute Phil Foden then made it 3-0 with a superbly-struck volley in the 85th minute.
City, chasing a fifth title in six seasons under Pep Guardiola, have 79 points from 33 games with Arsenal on 78, having played a game more. They will move four clear if they beat Leeds United at home on Saturday.
West Ham remain in trouble in 15th place, four points above the relegation zone.
David Moyes's side would have expected a siege and were not disappointed as they spent virtually the entire first half deep in their own half repelling wave after wave of City attacks.
City swarmed forward with Julian Alvarez and Riyad Mahrez forcing routine early saves by Fabianski and Haaland heading a Grealish cross over the bar at full stretch.
West Ham, hampered by the absence of midfielders Declan Rice and Tomas Soucek, defended valiantly with the colossal Angelo Ogbonna heading away cross after cross.
Arsenal fans might have started to believe the soccer Gods were smiling on them when Grealish's snap shot hit the outside of the upright and minutes later Rodri's guided shot hit the post and span agonisingly across the face of goal.
Guardiola was scratching his bald head as City failed to turn their 80% possession into a goal and the hosts had a scare when Jarrod Bowen surged into the area and forced Ederson into a sharp save after a rare West Ham forward foray.
OLD ROUTINE
West Ham finally cracked five minutes after the interval and it was a goal that would have infuriated Moyes.
Having resisted so well, they were undone by a simple old routine -- a Mahrez free kick curled towards the far post and Dutch defender Ake rose unchallenged to head past Fabianski.
West Ham still looked capable of adding a twist to the title script until Grealish released Haaland for his milestone moment.
Foden then put the icing on his side's ninth successive league win with the 1,000th goal in Guardiola's City reign.
But the night belonged to Haaland who was given a guard of honour as he walked off with the cheers of City's fans ringing in his ears and Dixie Dean's record of 63 goals in a season in all competitions for Everton in 1927-28 surely within sight.
As well as five league games left, City are in the semi-finals of the Champions League and FA Cup final.