Phil Foden came off the bench to spare spluttering Manchester City's blushes as the England midfielder rescued a 1-1 draw against West Ham on Saturday.
Pep Guardiola's side fell behind to Michail Antonio's superb overhead kick in the first half at the London Stadium.
Foden came on at half-time and produced an instant equaliser, but City couldn't deliver the knockout blow and have now won just one of their last four Premier League games.
Injury-hit City, without Fernandinho, Aymeric Laporte, Nathan Ake and Gabriel Jesus, rarely reached peak form in the latest of a growing list of inconsistent displays.
While Arsenal and Porto were beaten in their previous two matches, City still don't seem to have completely recovered from their 5-2 thrashing by Leicester in September.
They are already five points behind leaders Everton, who play Southampton on Sunday, and look more vulnerable than at any time since Guardiola's first season in charge.
Tricky trips to Marseille and Sheffield United next week will provide a further test of just how determined City are to recover the all-conquering form that swept them to the title in 2018 and 2019.
After fighting back from 3-0 down at Tottenham with three goals in the last 10 minutes in their previous match, this was another encouraging result for West Ham.
Raheem Sterling scored a hat-trick in City's 5-0 win at West Ham last season and his penetrating run laid on an early chance for Sergio Aguero, whose shot was deflected wide.
Aguero was the provider when he ran onto Joao Cancelo's defence-splitting pass and crossed for Riyad Mahrez to volley over under pressure.
Guardiola named an unchanged line-up in consecutive games for the first time since October 2017, but City still lacked rhythm and they fell behind to Antonio's moment of magic in the 18th minute.
Vladimir Coufal swung a cross into the City area and Antonio showed his strength and agility as he held off Ruben Dias before smashing a superb overhead kick past Ederson for his third goal of the season.
City appealed for a handball by Tomas Soucek in the build-up, but VAR allowed the goal to stand.
Since the Premier League restart in June, only Tottenham striker Harry Kane has scored more goals than Antonio's 11.
City had lost their last six Premier League away games when they conceded the first goal and they found it hard to impose themselves at times.
Mahrez couldn't get enough power on his sliding effort from Cancelo's cross, while Eric Garcia shot tamely wide.
Aguero hasn't scored in the top flight since January and is notoriously slow to return to his best after injuries.
Just back after several months out following knee surgery, the Argentina striker was replaced by Foden at the interval, leaving him without a goal in his last eight league games.
Foden made an immediate impact as the 20-year-old grabbed his third goal of the season in the 51st minute.
Cancelo made an incisive burst down the left and aimed his cross into the West Ham area, where Foden controlled and turned in one motion before driving his low shot past Lukasz Fabianski.
With 22 minutes left, Guardiola introduced Kevin De Bruyne, who missed the wins over Arsenal and Porto with a muscle problem.
De Bruyne's pinpoint pass gave Sterling a golden opportunity to win it for City in the 86th minute, but the forward's poor touch and hesitant shot allowed Fabianski to save.
Guardiola shook his head and there was more frustration in stoppage-time when Mahrez's shot was pushed onto the post by Fabianski.