Arsenal leapfrogged West Ham to move into the top four with a convincing 2-0 win at the Emirates Stadium on Wednesday night.
Besieged by the unwanted drama Pierre-Emerick Aubameyang's captaincy controversy brought in the build-up to the match, Arsenal eased past their Champions League-chasing visitors.
Pressing high, and particularly hard immediately after losing possession, Arsenal were on top in a well-fought but stop-start first half. Limiting West Ham to just three shots in the first 45 minutes, none on target, Arsenal's superior territory began to develop into chances.
For his 600th Premier League match as a manager, David Moyes' side sat deep, frustrating the Gunners as the navy shirts clogged a penalty area Bukayo Saka, chiefly, repeatedly made a beeline for.
Denied by increasingly last-ditch blocks as the first half wore on, Gabriel Martinelli speared through the right channel of West Ham's backline three minutes after the interval. Darting onto Alexandre Lacazette's perfectly-weighted pass, Martinelli classily rolled Arsenal into the lead.
The hosts more than merited their advantage but were given the chance to double it through controversial circumstances. Vladimir Coufal slid into a 50-50 with Lacazette, winning the ball but catching Arsenal's stand-in skipper on the follow-through which earned him a second yellow card and the Gunners a penalty in the 67th minute.
Lacazette stepped up but Lukasz Fabianski denied his former employers with a save at full stretch, somewhat deflating Arsenal's growing ascendency. West Ham crept out of their shell in search of the one goal that Arsenal's profligacy ensured would earn a point.
Yet, as the game ticked towards its conclusion, Saka strode away into rare swathes of space that West Ham's scattered and depleted ranks left while on the attack. Taking up the baton, substitute Emile Smith Rowe carried the ball to the edge of the box, dragging the game sealing second goal into the bottom corner.
Arsenal player ratings
1. Goalkeeper & defenders
Aaron Ramsdale (GK) - 7/10 - Composed as ever with the ball at his feet, Ramsdale regularly punched (not literally) a pass into the feet of Lacazette between the lines on halfway.
Takehiro Tomiyasu (RB) - 7/10 - Dovetailed devilishly with Saka while upholding his defensive duties.
Ben White (CB) - 8/10 - On the sporadic occasions Michail Antonio led a West Ham breakaway, Arsenal's progressive passer from the back jockeyed the burly forward well.
Gabriel (CB) - 7/10 - Began the opening goal that was so well-worked it looked pre-choreographed.
Kieran Tierney (LB) - 6/10 - Denied by the woodwork (and Fabianski's fingernails) as he was given the freedom to push forward from full-back.
Thomas Partey (CM) - 6/10 - Didn't exert as much influence on proceedings as Arsenal's dominance may suggest.
Granit Xhaka (CM) - 7/10 - Dropping deeper to help unshackle Tierney and allow him to roam down the left.
Martin Odegaard (AM) - 7/10 - Floating into his favoured right-hand channel, regularly untracked between the lines but without fatally wounding the Hammers.
Bukayo Saka (RW) - 8/10 - Arsenal's main attacking prong throughout.
Alexandre Lacazette (ST) - 7/10 - Superb at both leading the press and linking the play in a performance blotted by his penalty miss.
Gabriel Martinelli (LW) - 8/10 - Took his goal superbly (Thierry Henry-esque some eager Arsenal fans may whisper) but just as important was his eagerness to win the ball back.
Emile Smith Rowe (AM) - 7/10 - Provided the impact Mikel Arteta sent him on for.
Eddie Nketiah (LW) - N/A
Nuno Tavares (LB) - N/A
West Ham player ratings
5. Goalkeeper & defenders
Lukasz Fabianski (GK) - 7/10 - On his return to the Emirates, Fabianski repeatedly rebuffed his former club - including from the spot.
Vladimir Coufal (RB) - 3/10 - Will undoubtedly feel aggrieved his tackle ceded a penalty, before even getting to the dismissal it earned.
Craig Dawson (CB) - 7/10 - Thrived under the backs-against-the-wall squalls of pressure but looked exposed when asked to defend more than his six-yard box.
Issa Diop (CB) - 6/10 - Made a crucial, goal-saving block to deny Saka doubling Arsenal's lead when trailing by a goal and a man.
Arthur Masuaku (LB) - 5/10 - Endured a busy evening but wasn't exactly helped by his teammates further up the flank.
Tomas Soucek (CM) - 4/10 - Aerially dominant as ever but not as impactful on the ground.
Declan Rice (CM) - 7/10 - Shone even in defeat with another dominant midfield display.
Manuel Lanzini (AM) - 4/10 - Scarcely involved in any threatening attacking sequences.
Jarrod Bowen (RW) - 4/10 - Skirted around the fringes of the contest.
Michail Antonio (ST) - 4/10 - Increasingly drifted out the wings in a desperate search to positively impact the game while the goals, and chances more pertinently, remain scarce.
Pablo Fornals (LW) - 4/10 - DIdn't track back to help Masuaku out anywhere near enough.
Said Benrahma (LW) - 5/10
Harrison Ashby (RB) - N/A