Phil Foden's early second-half goal wasn't enough to spark a Manchester City comeback as they dropped two more points with a 1-1 draw at the London Stadium.
West Ham took a deserved lead into the shed after Mikael Antonio's wondergoal 18 minutes in but they couldn't hang on as they took another point from their tricky run of fixtures.
Story of the match
The Irons - fresh off the back of an incredible comeback against Spurs last time out - continued where they left off, taking the lead in the 18th minute in quite spectacular fashion.
Antonio was the man to get it, holding off Rueben Dias superbly before firing an acrobatic effort past a helpless Ederson.
There was a suggestion of handball in the build-up as Tomáš Soucek laid the ball off to Vladimír Coufal to deliver. However, after a brief check with VAR, the goal was given the green light.
It was nothing less than West Ham deserved after taking the game to Manchester City, who struggled to gain any real momentum in the opening 45 minutes as their trademark possession-based football was disrupted by far too many stray balls.
Lukas Fabianski - making his 250th appearance for the club - was a mere spectator in the first half, as West Ham entered the break deservedly leading.
Manchester City made one change at the break - Phil Foden replacing Sergio Aguero - with Foden moved out to the right-wing and Raheem Sterling playing through the centre.
And it didn't take long for the attacking midfielder to make his mark.
The young Englishman soon had his boyhood club on level terms, collecting Joao Cancelo's low cross before twisting and turning and firing a low effort past Fabianski.
Things went from bad to worse for the Hammers, as a presumably injured Mikael Antonio made way straight after, replaced by Andriy Yarmolenko.
The visitors looked a shadow of the side seen in the first 45 minutes, as they began to dominate the tempo of the game. They welcomed Kevin De Bruyne back to action after missing the last two games with an injury sustained on international duty with Belgium, he replaced Bernardo Silva just after the hour mark.
West Ham made a change of their own - Sebastian Haller replacing Jarrod Bowen as David Moyes switched back to a conventional striker leading the line.
Manchester City continued to control the game without creating too many changes. De Bruyne's first real involvement being a freekick from 25 yards out which was comfortably held on to by Fabianksi.
West Ham had a great opportunity to retake the lead five minutes from time when Pablo Fornals was played in behind by Yarmolenko - managing to stay onside by a whisker as he remained in his own half when the ball was played - but his tame effort to lift the ball over Ederson was collected comfortably by the Brazilian stopper.
Then came the chance that Manchester City had been waiting for. Riyad Mahrez winning the ball back off Masuaku before finding De Bruyne who put Sterling in behind.
The Englishman's first touch was nothing short of dreadful as Fabianski got out to deny the visitors taking the lead as the chance went begging.
There proved to be one last chance in the dying embers, Mahrez poking an effort towards the near post which was kept out by Fabianksi with the aid of the woodwork.
It's another two points dropped for Pep Guardiola's men, who have now won just one of their last four Premier League outings.