City knew a victory at the London Stadium would all but seal their sixth Premier League title.
But they were held by a West Ham side that are chasing Europa League football themselves.
Jarrod Bowen’s first-half brace gave the home side an unlikely 2-0 lead going into half-time.
City needed to wake up and they got the reaction that Pep Guardiola would have asked for.
Jack Grealish pulled a goal back in the 49th minute, before Vladimír Coufal’s own-goal with 21 minutes remaining restored parity.
City were piling on the pressure and they were given a golden opportunity to win the game in the 85th minute when they were awarded a penalty.
Gabriel Jesus drove into the box and was taken out by Craig Dawson.
Nothing was given initially but referee Anthony Taylor pointed to the spot after intervention from VAR.
Watch the moment below…
West Ham then held on as the game ended in a thrilling 2-2 draw.
City now have a four-point lead over Liverpool at the top of the table.
West Ham 2-2 Man City match reaction | The Football Terrace
Liverpool could close the gap to one point should they beat Southampton on Tuesday evening.
Regardless of the result, City know a victory over Aston Villa at the Etihad Stadium on the final day next Sunday will be enough to win the title.
Villa’s manager, of course, is none other than Liverpool legend, Steven Gerrard.
Gerrard will, undoubtedly, be doing everything in his power to ensure his former club have the best possible chance of lifting the Premier League for the second time.
David Beckham quiz: How much do you know about the football legend?