Jack Grealish pulled one back early in the second half before a Vladimir Coufal own goal completed the fight back.
It could have been even better for the Blues when Gabriel Jesus was fouled in the box. However, Riyad Mahrez's resulting penalty was saved by Lukasz Fabianski.
Even still, the draw extends the league's longest ever away unbeaten run.
As is often the case, City dominated the ball, enjoying 78% possession and completing 629 passes in comparison to West Ham's 129.
Of City's 30 shots, seven were on target while West Ham scored with their only two shots on target from a total of six attempts.
According to xG Philosophy, City had an expected goals total of 2.49 compared to West Ham's 1.56, showing that while we restricted our hosts to relatively few chances, they had a comparatively high likelihood of scoring.
City's xG is our highest of any Premier League match this season that we have failed to win, with the 15 matches in which we have created more and higher quality chances all ending in victory.
West Ham's total marks the fifth best xG against us this season.
SofaScore's Attack Momentum graphic shows how City pressed throughout the match. The longer the bar, the more pressure exerted on the opposition.
BRING IT JACK
Jack Grealish's strike early in the second half was undoubtedly a turning point; giving City hope and forcing West Ham further on to the backfoot.
Our man was high and wide for the majority of the game, with West Ham largely camped on the edge of their own box.
While his strike was crucial, it was as a creative force that he excelled.
According to FBref.com, he had 10 shot-creating actions in the match - more than any other player. With an average of 5.25 shot-creating actions a game this season, he sits in the top of 4% of players in Europe for that particular stat.
His pass completion (92.6%) was the highest of any of City's five most attacking players but that does not mean he was playing it safe, with 10 of his 50 all regarded as progressive.
That figure is second only to Oleksandr Zinchenko. An impressive feat when you consider how high Grealish's starting position in the match was.
His 18 progressive carries shows his attacking intent and with 13.63 progressive carries a match in 2021/2022, he is in the top 1% of players in Europe for that metric.
DEAD BALL SPECIALISTS
The two sides sit second and third in the Premier League for most crosses, with City having sent in 834 and West Ham 773.
City reap the rewards of that, with 21 set piece goals in the Premier League this season. Liverpool are the next best on 17 while Chelsea (11) are the only side with more than 10.
Riyad Mahrez's curling, dipping ball was turned in by Coufal for City's second on Sunday, making the 21st of the season.
With one game left of the season, there are a number of metrics in which City players lead the league-wide table.
Joao Cancelo (2,872) has successfully completed more passes than anyone else but teammates Aymeric Laporte (2,841) and Rodri (2,800) are close behind. That same trio are also leading the way for touches.
As the below graphic shows, Laporte's passing is crucial for supplying the left sided attackers with plenty of touches.
Ederson is tied with compatriot Alisson for clean sheets. Both Brazilians have 20.
Our current tally of 96 goals is the most in the league while our 24 conceded is the joint lowest with Liverpool. Our xG of 86.1 is the highest in the league and our xGA (expected goals against) of 26.8 is the lowest.
City's current goal difference of +72 would be the second highest in Premier League history, only behind our +79 in 2017/18. Obviously, Sunday's game could well affect this year's figure.
Eight City players are currently in the top 50 scorers in the league - more than any other team.
Our 25,531 passes puts us more than 3,000 ahead of second placed Liverpool.