Erling Haaland's stoppage time penalty sent Manchester City to the top of the Premier League table.
The match started with an action packed first-half, with City taking the lead through Julian Alvarez.
But the Blues were pegged back by a red card to Joao Cancelo which resulted in a penalty, converted by Andreas Pereira for Fulham.
Advert
The second-half was also full of controversy as substitute Erling Haaland’s goal, which had fired City into the lead, was ruled out by VAR for an offside.
However the Etihad Stadium erupted as Haaland did score the winner, an injury time penalty, after Kevin De Bruyne had been fouled in the Fulham box.
The result sees the Premier League champions extend their unbeaten run at home domestically, with City last losing at the Etihad in February.
The first chance of the match unsurprisingly fell to the home side, as Kevin De Bruyne lined up a shot from outside of the box, but the Belgian saw his effort saved by a diving Bernd Leno.
Advert
Moments later, fellow midfielder Ilkay Gundogan also saw his shot saved by his fellow German, as City piled the pressure on their visitors.
It did not take long for Pep Guardiola’s side to take the lead and this advantage came courtesy of Julian Alvarez, who smashed his shot off the underside of the bar and in following Gundogan's pass.
City thought they had taken a two goal lead when John Stones had the ball in the back of the net but this was disallowed for an offside.
Things went from mildly annoying to bad for City as the Premier League champions saw a red card for Joao Cancelo after his challenge on Harry Wilson in the box.
Advert
Andreas Pereira, on loan from City’s rivals Manchester United, stepped up and converted the resulting penalty, sending Ederson the wrong way.
City tried to retake the lead despite the one man disadvantage, but their attempts were met with blocks and saves, meaning the Citizens went into the break surprisingly drawing.
The start of the second-half produced very little in the way of opportunities, with Wilson firing wide of Ederson’s goal from a good position.
Advert
Guardiola had seen enough by this point and decided to bring fan favourites Phil Foden and Erling Haaland on for Jack Grealish and Alvarez.
Moments later, De Bruyne tried a free kick from far out, attempting to catch Leno off guard, but the Belgian saw his cheeky attempt fly past the post.
City believed that they had taken the lead through substitute Haaland after the striker had headed home De Bruyne’s delivery, but a VAR check adjudged the move to have been offside.
Minutes ticked by but all to no avail seemingly, as the Blues struggled to find a way through.
Advert
However, the game turned on its head as City were awarded a very late penalty after De Bruyne was fouled in the box.
Haaland stepped up and converted the spot kick, much to the delight of all in sky blue in the ground.
The Citizens hung on to claim a fantastic, hard fought victory in the face of adversity.
City’s victory ensures that hey leapfrog Arsenal to regain the top spot in the table, with the Gunners to play away to Chelsea on Sunday afternoon.
Guardiola’s men are next back in action in the Carabao Cup on Wednesday evening as they also play Chelsea, in what is shaping up to be a mouthwatering third round tie at the Etihad.
Topics: Manchester City, Fulham, Premier League, Erling Haaland, Kevin De Bruyne, Joao Cancelo