West Ham stunned Arsenal to record a third successive Premier League victory, denting the Gunners' title challenge in the process.
It was a ruthless display by West Ham, who converted two of their three shots on target, while Arsenal squandered a host of opportunities as they missed the chance to move top of the league.
Tomas Soucek fired in Jarrod Bowen's cutback and, while the ball had potentially gone out of play in the build-up, there was not enough evidence for the video assistant referee to overturn the goal.
That gave West Ham a first-half lead which was doubled when former Arsenal centre-back Konstantinos Mavropanos expertly headed in a corner in the 55th minute.
Despite plenty of possession and pressure, Arsenal could not find a response.
And their woeful night was nearly made worse when Declan Rice gave away a penalty in the final minute of injury time, but Said Benrahma's effort was saved by David Raya.
The result leaves Mikel Arteta's Gunners second in the table, two points behind league leaders Liverpool, while West Ham end the year with 33 points - their highest total at the halfway stage in a Premier League campaign.
Missed opportunity for Gunners
Arsenal's undoing was their inability to convert dominance and possession into goals.
As the match wore on, their failure to capitalise only led to frustration - not only on the pitch but also in the stands, as fans grew weary and the atmosphere drained at Emirates Stadium.
Opportunities were spurned as Bukayo Saka struck the post in the first half, Gabriel Martinelli fired wide and Gabriel Jesus headed high.
Ex-West Ham captain Rice later fizzed an effort over the bar, before Hammers goalkeeper Alphonse Areola denied Leandro Trossard and Martin Odegaard.
It was a stark contrast to West Ham's fortunes and the visitors were able to brilliantly fend off countless attacks with selfless defending.
Arsenal's lack of ruthlessness could prove costly with five teams sitting within six points of each other at the top of the Premier League. There is little room for error.
Season's greetings for Hammers
West Ham's results in December have been a festive treat with Moyes' side backing up an impressive win over Manchester United with this stunning result at the Emirates.
It means they sit sixth in the table, well in the mix for European qualification, following four wins, one draw and one defeat in the league this month.
Despite losing England midfielder Rice in the summer, who lined up for Arsenal against his former club for the first time, West Ham have shown maturity and growth in the first part of the campaign and have been rewarded with their highest points tally.
But there will be an anxious wait to learn the extent of Lucas Paqueta's injury - the Brazilian midfielder had ice strapped to his left leg after being forced off in the 31st minute, having pulled up in the warm-up before being risked anyway.
Latest Stories
-
We’ll embrace cutting-edge technologies to address emerging healthcare needs – Prof. Antwi-Kusi
10 minutes -
14 minutes -
Environmental protection officers receive training on how to tackle climate change
17 minutes -
CLOGSAG vows to resist partisan appointments in Civil, Local Government Service
1 hour -
Peasant Farmers Association welcomes Mahama’s move to rename Agric Ministry
1 hour -
NDC grateful to chiefs, people of Bono Region -Asiedu Nketia
2 hours -
Ban on smoking in public: FDA engages food service establishments on compliance
2 hours -
Mahama’s administration to consider opening Ghana’s Mission in Budapest
2 hours -
GEPA commits to building robust systems that empower MSMEs
2 hours -
Twifo Atti-Morkwa poultry farmers in distress due to high cost of feed
2 hours -
Central Region PURC assures residents of constant water, power supply during yuletide
2 hours -
Election victory not licence to misbehave – Police to youth
2 hours -
GPL 2024/2025: Nations thrash struggling Legon Cities
2 hours -
Electoral offences have no expiry date, accountability is inevitable – Fifi Kwetey
2 hours -
Ghanaians to enjoy reliable electricity this Christmas – ECG promises
2 hours