Manchester City continued their stuttering start to the Premier League season with a 1-1 draw at West Ham.
The Hammers last beat City in September 2015 but Michail Antonio's magnificent overhead kick gave them an 18th-minute lead.
City produced more of the ponderous play that saw them drop points against Leicester City and Leeds United until Phil Foden came off the bench to inspire their most convincing passage of the match.
Foden struck a 51st-minute equaliser but, as they did in the first period, Pep Guardiola's side tailed off and even the appearance of a fit-again Kevin De Bruyne from the bench could not inspire a victory.
City have eight points from five games and are 11th, below West Ham on goal difference.
Raheem Sterling drove at West Ham's defence amid a bright start from City, with Sergio Aguero's resulting shot deflected behind by Vladimir Coufal.
Ilkay Gundogan was prominent early on, driving wide left footed before picking out Ruben Dias with a raking pass that the centre-back could not finish.
But the opening goal came against the run of play - and spectacularly so - as Antonio outmuscled Dias to find a sensational finish from Coufal's cross, with Tomas Soucek's suspected handball in the build-up cleared by VAR.
City were thoroughly lacklustre from the point they fell behind until half-time, although Foden's introduction in place of Aguero - potentially another addition to Guardiola's hefty injury list - changed the complexion of the contest.
The England youngster injected some much-needed tempo into the visitors' play, not least when Joao Cancelo tore down the West Ham right and crossed for Foden to slot home a fine finish.
West Ham also lost their centre-forward, Antonio limping out of the action just after the equaliser. His replacement Andriy Yarmolenko sent a dipping long-range effort just over in the 68th minute.
De Bruyne thudded a free-kick into Lukasz Fabianski's chest 10 minutes and the point were shared when the West Ham goalkeeper thwarted Sterling in a one-on-one situation.
What does it mean? City still off the pace
Back-to-back wins over Arsenal and Porto have not ironed out the kinks that are preventing City from hitting their stride. In fact, much of this performance showed the slack vulnerabilities that have stained the past 18 months at the Etihad Stadium.
West Ham's goal should arguably have been disallowed, but the failure of the three City players in Soucek's immediate vicinity to play to the whistle was unforgivably careless.
"Foden plus 10 more"
When Bernardo Silva was in prime form during City's 2018-19 treble-winning campaign, Guardiola quipped his selection was a case of "Bernardo plus 10 more". There is evidence he should give Foden a similar status within his current crop. The 20-year-old has been involved in six goals in his past 10 appearances in all competitions, with four goals and two assists, while City have never lost in a match where he has found the net. They are a different team with Foden on the field.
Dias left Ruben his ego
Record signing Dias has made an impressively assured start to his City career. However, his penchant for no-nonsense defending was found wanting when Antonio bullied him for the opener. The Portugal international only won six of his 11 duels contested.
City will look to make it two wins from two in the Champions League when they travel to Marseille in midweek, while West Ham have another tall task at Liverpool next weekend. Guardiola's side are next in Premier League action at Sheffield United.