Erling Haaland's record-equalling 34th Premier League goal was countered by Carlos Vinicius' well-taken volley temporarily levelled the scoreline - all before Julian Alvarez's long-range screamer - which was enough to send Manchester City to the top of the table.
The biggest news ahead of kick-off was the shock absence of Kevin De Bruyne. After the Belgian's incredible performance midweek, he was deemed not fit enough to feature against Fulham. Nathan Ake is "much better", but this fixture has come too soon for the Dutchman.
Bernardo Silva dropped to the bench for Riyad Mahrez, and Alvarez replaced De Bruyne as the only two changes to the starting XI. Manuel Akanji, after doing a fantastic job against Arsenal, retained the position on the left-hand side of the defence; this time it was a part of a back three though, with John Stones pushing up into midfield.
Haaland scored a penalty to beat Fulham in the 95th minute in the reverse fixture - the only time he started a Premier League game on the bench. It took him three minutes to achieve the same feat at Craven Cottage. A well-worked passage of play from the visitors resulted in Tim Ream tripping Alvarez, and despite a brief VAR check, there were no arguments about this decision.
After Haaland and Mahrez previously stated last weekend they're taking it in turns from the penalty spot, it was the Norwegian's turn this week - as he made no mistake in smashing it into the bottom right corner, giving Bernd Leno no chance - despite guessing the correct way.
That was the 22-year-olds 50th goal in all competitions and his 34th in the Premier League, equalling Alan Shearer's and Andrew Cole's record of the most amount of goals in a Premier League season. Albeit this is Haaland's 30th appearance, whilst the other two strikers managed their incredible goalscoring campaign in a 42-game season.
As we saw midweek, Haaland can flip the switch when he wants to and turn to provider, which he did brilliantly for Jack Grealish, but the Englishman's shot was straight at Leno.
That may have been a costly miss as despite the opening quarter of an hour being controlled comfortably by the City players in the red and black away strip - Fulham, with their first meaningful attack of the game, made it count.
A lofted ball into the area was met by Harry Wilson, who knocked it down for Vinicius, who controlled it with his left knee before thumping it right into the corner of Ederson's net - who didn't stand a chance.
It was that linkup of Haaland and Grealish once again; this time Grealish really tested Leno as his effort, which looked destined for the top right corner, was tipped onto the crossbar by Leno and eventually went out for a goal kick.
Most of the time, when Alvarez has been called into the starting XI, he has always delivered for Pep Guardiola, and wow, did he deliver once again today. The Argentine seemed to have all of his passing options cut off, so he opted to go alone, and when you have the ability he has, you can't blame him.
The World Cup winner, from just outside the box, curled the ball into the top left corner, over a fully stretched Leno and handed City their lead back.
After Alvarez's stunner, City began to play more like their usual selves and Ilkay Gundogan was played through on goal, but to Haaland's frustration, rather than pulling it back to the Norwegian for an open goal, the German decided to take the shot on himself which was smothered by his national teammate.
A few sloppy mistakes from the City defence gifted Fulham some last-minute hope in the first half as Fulham had a succession of corners - which City dealt with, not confidently, but they dealt with them all the same.
Haaland nearly scored faster in the second half than he did in the first half, but Leno produced an outstanding save. Alvarez, once again with a brilliant piece of build-up play, switched the ball to Grealish, who slotted Haaland in for a first-time effort to the near post, but the German goalkeeper tipped it around the post for a corner.
A few minutes later, the ball dropped perfectly for Alvarez once more, who asked another question of Leno, but his low-driven shot was equally matched.
A momentary lapse in communication between Ederson and Ruuben Dias brought a huge scare to Guardiola's side but a brilliant recovery by the Brazilian goalkeeper made amends for his original mistake. There were appeals for a penalty by the home support, but VAR said no.
City were losing control of the game through their own mistakes, and yet another penalty claim from the hosts was instantly waved away by Simon Hooper and VAR once again. This was just before an off-the-ball tussle between Grealish and Kenny Tete.
After that, neither side really created any threatening chances, and City regained control of the match - dominating possession, as they always do, in the centre of the pitch.
Despite the game going on until the 100th minute, the Blues were able to see out the game confidently, with Haaland and co. keeping the ball in the corner where the travelling fans could be heard celebrating every throw-in like it was a goal.
City will host West Ham at the Etihad on Wednesday, May 3rd as they look to take advantage of one of the games in hand they have over Arsenal as they continue their pursuit of a third consecutive Premier League title.
Man of the Match
Haaland might have been the one to equal yet another record, but it was Alvarez who ran the show. The Argentine, who has had to wait patiently for his opportunities this season, definitely made the most of this one.
He won the penalty that provided Haaland with the chance from 12 yards out and scored a sublime finish from outside the box that rivals De Bruyne strikes from the past, which is quite fitting given he was his replacement this afternoon.
Ederson - 6
Walker - 6
Stones - 7
Dias - 7
Akanji - 7.5
Rodri - 7
Gundogan - 7.5
Mahrez - 7
Alvarez - 9
Grealish - 7.5
Haaland - 8
Substitutes: Foden - 7, Bernardo Silva - 7
Written by: @DanGP17_
Follow our Twitter account for reliable, live updates on all the latest news and everything Manchester City in real time.