The Hammers burst into a 3-0 lead after just 32 minutes, thanks to a great performance from Jesse Lingard.
But Martin Odegaard inspired Arsenal's comeback and in the closing stages both sides could have won in a gloriously open contest.
✔️ Martin Odegaard: 7.7
With captain Pierre-Emerick Aubameyang well off the pace, Odegaard took the opportunity to step up in a bad situation and lead Arsenal back into this match.
With his team 3-0 down and effectively out of the match, Odegaard began to dictate the play at a high level. Despite only being at Arsenal for a short period, he is already progressing into being an important player from a creative build-up perspective.
The Norwegian made 70 passes, with more than half of these into the final third, at an accuracy of 94%. Not only was Odegaard excellent at retaining the ball, he was making creative passes while doing so, in arguably his best all-round performance yet for the Gunners.
❌ Bernd Leno: 5.5
The German goalkeeper is no stranger to a mistake and here he was culpable again as West Ham took advantage of his fragile confidence.
He had no chance with Jesse Lingard's opener but for Jarrod Bowen's goal he allowed the shot to squirm past him at the near post. It was a near-unforgiveable mistake that ultimately cost his side victory after the spirited second-half comeback.
⭐ Jesse Lingard: 7.9
Lingard's recent revival has been a real marvel and the on-loan Manchester United playmaker produced another superb display in which he was unlucky not to win the game.
He opened things up with a quite sensational goal, controlling on the edge of the area and lashing across Leno into the far top corner.
And it was his quick thinking from a free-kick situation that allowed Jarrod Bowen to run clear and finish at the near post.
He was always an attacking threat for his team and linked brilliantly with Michail Antonio. He has been called up to the England squad once again and it's a pleasure to watch a player revitalised of late.