Samir Nasri played his first Premier League game since appearing for Manchester City against West Ham in August 2016
A superb finish by West Ham midfielder Declan Rice - the 19-year-old's first Premier League goal - earned his side a fine win and dented Arsenal's top-four ambitions.
Rice beat Bernd Leno with a first-time shot after a good lay-off by Samir Nasri, who was making his first top-flight appearance in England since August 2016.
In a highly-competitive London derby, Alexandre Lacazette was denied by an excellent save from Lukasz Fabianski as Arsenal failed to score in the league for the first time since the opening day of the season.
West Ham were full value for their win, with Marko Arnautovic, Rice, Nasri and Felipe Anderson all going close when the game was goalless.
Reaction from London Stadium
Arnautovic 'wants West Ham to accept £35m Chinese bid'
Juventus leading race to sign Arsenal's Ramsey
The Gunners are three points behind fourth-placed Chelsea, who entertain Newcastle at 17:30 GMT.
Bright future for Rice and West Ham
This was a result to remember for Manuel Pellegrini and West Ham, with the performance a fitting way to mark 50 Premier League games at London Stadium.
Bournemouth, Wolves, Tottenham, Manchester City and Watford have all won at the venue this season.
Yet the Hammers turned in one of their best performances under Pellegrini to claim a first win over Arsenal since 2015.
Nasri brought an air of authority and added quality to the midfield while Marko Arnautovic was busy and inventive despite the player's agent and brother saying the Austrian striker wants to move to a Chinese club during this transfer window.
The 29-year-old did, however, wave to fans when he was replaced with 20 minutes to go.
West Ham are not home again until 4 February - after the transfer window closes - and if Arnautovic was saying his goodbyes, at least West Ham's future is bright in the shape of Rice.
The teenager has been a revelation this season and played with an air of maturity way beyond his years.
After spurning a good chance to open the scoring on the stroke of half-time when he headed wide, Rice punished Arsenal's defence with a superb finish into the roof of the net after a poor headed clearance.
Will Arsenal finish in the top four?
Arsenal are now without a win in five league games away from the Emirates Stadium and are playing catch-up in the race for a Champions League place.
Only leaders Liverpool and Manchester City have found the net more than the Gunners, but against West Ham they failed to score in the league for only the second time this season - and have not kept a clean sheet since 8 December.
Perhaps more worryingly for Unai Emery's side, they rarely looked like getting back on level terms after Rice's special finish.
Emery even sent on Aaron Ramsey, who will leave Arsenal at the end of the season, to try and rescue his side.
Arsenal had started well enough with Alexandre Lacazette looking particularly sharp and strong.
Teenager Matteo Guendouzi went close from outside the area when the game was goalless, while Aaron Creswell made a superb challenge to deny a rare chance for Pierre-Emerick Aubameyang.
On a day to forget for Arsenal, captain Laurent Koscielny did find the net in the third minute of stoppage time but his header was ruled out for offside.
Man of the match - Declan Rice (West Ham)
A day that will live long in the memory of Declan Rice. The young midfielder, who turns 20 on Monday, showed why he has a great future in front of him after another excellent midfield performance which he capped with a first Premier League goalTeenage kicks - the stats
Declan Rice became the 10th teenager to score a Premier League goal for West Ham, and the first since Junior Stanislas in November 2009.
Arsenal have taken just two points from their past five away Premier League games - they won 13 in the five away games prior to this run.
West Ham registered only their third home Premier League win against Arsenal and their first since November 2006, ending a run of 10 home games without victory against the Gunners.
Samir Nasri played his first Premier League game for West Ham and registered his first assist in the competition since April 2016, when he assisted Sergio Aguero for Man City against Chelsea.
Arsenal are one of three Premier League teams yet to lead at half-time in an away Premier League match this season, along with Burnley and Cardiff City.
Hammers boss Manuel Pellegrini remains unbeaten in home matches against Unai Emery in all competitions during his managerial career.
Bournemouth are next up for West Ham at the Vitality Stadium on Saturday, 19 January (15:00 GMT). On the same day, Arsenal host Chelsea (17:30).
30AntonioSubstituted forObiangat 82'minutes
18NasriSubstituted forSnodgrassat 71'minutes
7ArnautovicSubstituted forCarrollat 71'minutes
20MustafiBooked at 46minsSubstituted forRamseyat 59'minutes
15Maitland-NilesSubstituted forBellerínat 69'minutes
34XhakaSubstituted forTorreiraat 59'minutes
31KolasinacBooked at 60mins
Home TeamWest HamAway TeamArsenal
Shots on Target
Match ends, West Ham United 1, Arsenal 0.Full TimePosted at 90'+4'
Second Half ends, West Ham United 1, Arsenal 0.
Posted at 90'+3'
Offside, Arsenal. Alex Iwobi tries a through ball, but Sead Kolasinac is caught offside.Posted at 90'
Corner, Arsenal. Conceded by Declan Rice.Posted at 88'
Foul by Pierre-Emerick Aubameyang (Arsenal).Posted at 88'
Pedro Obiang (West Ham United) wins a free kick on the left wing.Posted at 87'
Offside, West Ham United. Lukasz Fabianski tries a through ball, but Andy Carroll is caught offside.Posted at 83'
Offside, Arsenal. Aaron Ramsey tries a through ball, but Sead Kolasinac is caught offside.SubstitutionPosted at 82'
Substitution, West Ham United. Pedro Obiang replaces Michail Antonio.Posted at 79'
Héctor Bellerín (Arsenal) wins a free kick on the right wing.Posted at 79'
Foul by Felipe Anderson (West Ham United).Posted at 77'
Laurent Koscielny (Arsenal) wins a free kick in the defensive half.Posted at 77'
Foul by Andy Carroll (West Ham United).Posted at 75'
Offside, West Ham United. Mark Noble tries a through ball, but Michail Antonio is caught offside.Posted at 74'
Foul by Sokratis (Arsenal).Posted at 74'
Andy Carroll (West Ham United) wins a free kick in the defensive half.SubstitutionPosted at 71'
Substitution, West Ham United. Andy Carroll replaces Marko Arnautovic.SubstitutionPosted at 71'
Substitution, West Ham United. Robert Snodgrass replaces Samir Nasri.Posted at 70'
Corner, Arsenal. Conceded by Declan Rice.SubstitutionPosted at 69'
Substitution, Arsenal. Héctor Bellerín replaces Ainsley Maitland-Niles.Posted at 68'
Attempt saved. Matteo Guendouzi (Arsenal) right footed shot from outside the box is saved in the bottom right corner.Posted at 68'
Lucas Torreira (Arsenal) wins a free kick in the defensive half.Posted at 68'
Foul by Marko Arnautovic (West Ham United).Posted at 67'
Attempt missed. Alex Iwobi (Arsenal) left footed shot from the left side of the box is close, but misses to the right. Assisted by Aaron Ramsey.Posted at 65'
Matteo Guendouzi (Arsenal) wins a free kick in the defensive half.Posted at 65'
Foul by Mark Noble (West Ham United).Posted at 64'
Attempt missed. Pierre-Emerick Aubameyang (Arsenal) left footed shot from the centre of the box is close, but misses the top left corner. Assisted by Sead Kolasinac.Posted at 63'
Attempt missed. Pierre-Emerick Aubameyang (Arsenal) header from the centre of the box misses to the right. Assisted by Aaron Ramsey with a cross.BookingPosted at 60'
Sead Kolasinac (Arsenal) is shown the yellow card for a bad foul.Posted at 60'
Foul by Sead Kolasinac (Arsenal).Posted at 60'
Michail Antonio (West Ham United) wins a free kick on the right wing.SubstitutionPosted at 59'
Substitution, Arsenal. Aaron Ramsey replaces Shkodran Mustafi.SubstitutionPosted at 59'
Substitution, Arsenal. Lucas Torreira replaces Granit Xhaka.Posted at 58'
Attempt missed. Angelo Ogbonna (West Ham United) header from the centre of the box misses to the left. Assisted by Felipe Anderson with a cross following a set piece situation.Posted at 57'
Foul by Alexandre Lacazette (Arsenal).Posted at 57'
Mark Noble (West Ham United) wins a free kick on the right wing.Posted at 57'
Corner, West Ham United. Conceded by Sokratis.Posted at 56'
Attempt saved. Michail Antonio (West Ham United) right footed shot from a difficult angle on the right is saved in the top centre of the goal. Assisted by Felipe Anderson with a cross.Posted at 55'
Corner, West Ham United. Conceded by Alex Iwobi.Posted at 54'
Attempt missed. Matteo Guendouzi (Arsenal) right footed shot from outside the box misses to the left.
Show more updates