Juergen Klopp’s team play at Southampton on Tuesday and City had the chance to open a six-point lead at the top but the draw at the London Stadium left them four points above Liverpool with one game left.
Victory on the final day at home to Aston Villa would guarantee City their fourth league title in five seasons, regardless of Liverpool’s results against Southampton and Wolverhampton Wanderers.
Pep Guardiola’s team will win the title on Tuesday if Liverpool lose at Southampton.
West Ham’s Jarrod Bowen struck twice in the first half but Jack Grealish pulled one back for City early in the second half before Vladimir Coufal scored an own goal. Riyad Mahrez missed a golden chance to seal a City win after he missed a late penalty.
After City defender Oleksandr Zinchenko lost track of Bowen, the West Ham forward raced on to Pablo Fornals’ pass over the top and took it round goalkeeper Ederson for a clinical finish in the 24th minute.
Bowen added another in the 45th minute when Michail Antonio sent him through with a clever pass and the English forward’s low strike from the edge of the box found the bottom corner.
City bounced back in the second half after playmaker Grealish scored for the visitors in the 49th minute with a volley after Rodri headed a high ball over to him in the box.
West Ham had the chance to add their third goal in the 65th minute when a loose back pass from Fernandinho sent Antonio through on goal but the Jamaica forward sent his shot over the bar.
The hosts were left to rue the missed chance as they conceded an own goal, with West Ham defender Coufal heading a cross from Mahrez into his own net in the 69th minute.
Mahrez could have become City’s hero in the 86th minute but his spot-kick was kept out by keeper Lukasz Fabianski after Craig Dawson brought down Gabriel Jesus in the penalty box.
The result guaranteed West Ham European football next season as they stayed seventh on 56 points.
The game also marked Mark Noble’s farewell game in front of home fans, with the midfielder set to bring the curtain down on his 18-year, one-club career at the end of the season.