But minutes before full-time, Yarmolenko cut inside Antonio Rudiger on the counter and won his side three huge points.
After a tepid start, the match came to life just after the half-hour mark. West Ham, under pressure for much of the contest so far, won a corner which Jarrod Bowen delivered, sparking an almighty scramble in the box before Soucek stabbed it home. As the Hammers celebrated, VAR checked the goal and controversially ruled it out with Antonio lying prone on the floor after a botched attempt at an overhead kick, marginally offside, though not appearing to interfere with play.
Things went from bad to worse for David Moyes' side. Within minutes of the restart, Issa Diop felled Christian Pulisic and Willian converted the penalty. But, deep into added time, West Ham got their equaliser in fitting fashion. Again, Bowen's corner picked out Soucek, who headed home a legitimate goal this time.
Soon after the restart, West Ham were on top, with Bowen driving a low cross to the far post, where Antonio was waiting to make it 2-1. Willian's fine free-kick looked to have earned his side a point, but with second-half added time approaching, Antonio broke into the Chelsea half and found the unmarked Yarmolenko, who cut inside Rudiger and finished calmly to give his side a crucial win.
The loss means Chelsea remain fourth, having failed to take advantage of Leicester City's earlier defeat to Everton, while West Ham are 16th, three points clear of the drop zone.
Are Chelsea's top-four hopes under threat? The good form of Wolves and Manchester United means that Chelsea are far from assured of a top-four finish now. While their wins over Manchester City and Aston Villa have meant a good return to football after lockdown, their previous Premier League form featured a string of disappointing results against the likes of Bournemouth, Arsenal, Leicester City and Man United. They are spending big already and failure to retain Champions League status could be a disaster. Their encounter against Nuno Espirito Santo's side on the final day of the season could have colossal ramifications.
MAN OF THE MATCH
Michail Antonio (West Ham): West Ham were happy to cede possession and territory throughout, leaving Antonio to work tirelessly on his own. And he did his job in fine fashion, harrying Chelsea defenders throughout and earning a goal and an assist for his troubles. Honourable mentions go to Jarrod Bowen, who came away with two assists, Willian, who scored twice, and Christian Pulisic, who was a constant thorn in the West Ham defence.
Chelsea: Kepa 6, Azpilicueta 5, Christensen 6, Rudiger 5, Alonso 6, Barkley 6, Kante 6, Kovacic 6, Pulisic 8, Abraham 5, Willian 8. Subs: Mount 5, Giroud 6, Loftus-Cheek 5
34' GOAL!!! No...
West Ham think they have the lead! Bowen himself whips in the corner. Kovacic inadvertently flicks it on and it falls to Soucek, who scrambles it in... Pending a VAR check...
Antonio was lying prone on the floor after trying an overhead kick and his head was offside. Soucek kicked his team-mate, but didn't kick the ball against him. As for interfering, he was hardly in Kepa's line of vision...
42' - Penalty to Chelsea! Diop fells Pulisic and there are no objections from West Ham on that one.
Willian sends Fabianski the wrong way and Chelsea are a goal to the good. West Ham will be cursing their luck.
45+3'- GOAL!!! Would you believe it?! West Ham are level! Bowen with another corner on the same wing as the disallowed goal, picks out Soucek (again!) at the back stick and he heads it into the far corner. There's no VAR check this time...
51' GOAL!!! Antonio is livid for a split second, appealing for a penalty after a Rudiger challenge, but he's soon back on his feet and celebrating as he meets Bowen's ball across the face of goal to put his side ahead. This could be huge!
72' - GOAL!! Willian again! He's quite a distance from goal but the Brazilian steps up and gets his side level, his free kick clipping the post and going in. There are question marks over Fabianski's positioning there...
89' GOAL!!!! West Ham lead!! Antonio is at the heart of it. The Hammers break at pace and Antonio finds the completely unmarked Yarmolenko on the far side. He cuts inside and drives home with his left foot, leaving Rudiger in a heap in the process. What a huge goal that could be.
Michail Antonio's goal was the 100th Premier League strike to be scored at the London Stadium
West Ham have lost six of their eight London derbies this season, their only previous win coming against Chelsea at Stamford Bridge
West Ham have won a Premier League game in which they have conceded the first goal for the first time in 21 attempts
Chelsea have won only one of their last six away matches at West Ham