It was a game that had a bit of everything.
Goals, a red card, VAR drama, penalties and, of course, a late, late winner.
City looked on course for a routine home win when Julian Alvarez thumped home the opening goal on 17 minutes.
But few could have predicted what would come next, as Joao Cancelo's challenge on Harry Wilson resulted in a straight red for the Portuguese and an equaliser from the penalty spot for the visitors.
With more than an hour to play, City had to find a new formation and dig deep to try and find another goal.
When VAR ruled out Erling Haaland's header on 76 minutes, it seemed Fulham would hold on to claim a point.
But Kevin De Bruyne won a penalty deep into added time that Haaland converted to give City a 2-1 victory.
Watch the drama unfold on the video above...