Just after early Julian Alvarez goal at the Etihad Stadium on Saturday it was cancelled out by Andreas Pereira penalty, as the visitors appeared destined to frustrate the champs.
Once Joao Cancelo was sent off for tripping Harry Wilson, which resulted in Pereira's equalizer, City had to continue the game for more than an hour with a diminished squad.
As is customary, Haaland had the final say despite being unfit after being unwell and suffering a foot injury.
In his 17th game for City after joining the team in the summer, he scored his 23rd goal.
Before his rescue, it had seemed as though City would be left to regret the hectic stretch before the break during which they lost the lead as well as their concentration and ball dominance.
Even without the threat of important attacker Aleksandar Mitrovic, Fulham have shown to be more than a match for them.
The hosts got off to their usual strong start, with Bernardo Silva forcing Bernd Leno into a brilliant stop before Kevin De Bruyne put the Fulham goalkeeper to the test with a powerful drive.
On minute 17, the first goal was scored. Alvarez received a great pass from Ilkay Gundogan, and the Argentine, who was starting his third game in a row owing to Haaland's fitness issues, blasted a shot off the underneath of the bar.
After John Stones latched on a set-piece rebound shortly after, he believed he had added an additional goal, but the flag was raised.
City lost control of the game during a turbulent 20-minute stretch before halftime.
Cancelo was the first person to lose his cool, and he gave up a penalty for a careless tackle on Wilson.
Wilson, a former Liverpool player, was through on goal and preparing to shoot when Cancelo shoved him off the ball without even trying to play.
Related article
Kyle Walker and Kalvin Phillips are assumed to be available for the World Cup by Pep Guardiola
Due to Bruno Fernandes' unavailability, Erik ten Hag has a lineup concern for Man United
The only way Liverpool, originally known as the finest, can succeed now is by defeating the finest
Without thinking twice, referee Darren England pointed to the mark and gave the Portuguese his marching orders.
Guardiola, the manager of City, was furious on the sidelines and his state of mind did not improve when, first, Pereira scored without making a mistake to tie the game.
Then, despite City's continued threat—Jack Grealish missed on two occasions and Manuel Akanji headed straight at Leno—the hosts were the victims of several rough fouls.
Wilson then brought down Silva, but this time the City player was given a yellow card for his reaction. Harrison Reed had already been given a warning for a bad foul on De Bruyne.
Silva was furious and argued with England before marching a long way to lecture his assistant.
While halftime blew, Silva was still screaming and had to be moved away from England. Guardiola seemed to lash out at fourth official Robert Jones in frustration.
The break helped to defuse the tension, but when play restarted, City lacked their customary bite.
Just after the hour, they had a chance to be punished, but Wilson missed the target.
Guardiola resorted to Haaland and Phil Foden right away, and although the Norwegian appeared to have scored when he headed in a De Bruyne cross, VAR determined that he was offside.
City kept up the pressure but couldn't test Leno until Antonee Robinson clipped De Bruyne in the area late in the game. Haaland stomped home right there.
What do you have to say about this match
Please comment below
David Paul 2 yrs
It's was a tense battle today no doubt