Declan Rice scored his first West Ham goal as Arsenal's top four hopes were dented following defeat at the London Stadium
The result means Manchester United will move level with Unai Emery's men with a victory at Tottenham on Sunday and could even overtake Arsenal should they win by three goals or more.
Arsenal old boy Samir Nasri made his first Premier League start for West Ham against his former club and almost produced an assist in the first half when he showed great composure to hold the ball up and lay the it off to Felipe Anderson on the edge of the box. However, the Brazilian could only fire wide.
West Ham came close to opening the scoring when Rice headed wide when unmarked from a corner just before half-time.
But, the 19-year-old did not have to wait too long to get off the mark, curling in a beautiful effort from a Nasri lay off three minutes after the interval as Arsenal failed to clear a West Ham corner.
Arsenal were unable to muster a clear cut chance in response, although leading scorer, Pierre Emerick-Aubameyang fired over when he could have done better.
Alexandre Lacazette then had a double chance early on and Matteo Guendouzi's 25-metre effort flew just wide but Arsenal struggled to exert any sustained pressure.
Alex Iwobi shaved the post with a low shot but Arsenal failed to score for the first time in 21 Premier League matches.
Arsenal manager Unai Emery was disappointed with his side's approach to the match.
"We didn't impose ourselves on the game but we had enough (quality) players to win the game," he said.
West Ham boss Manuel Pellegrini took Marko Arnautovic off for Andy Carroll on 71 minutes and the Austria forward, who is reportedly close to moving to China, appeared to be waving goodbye to the London Stadium faithful.
The victory takes West Ham to eighth place -- level on points with Leicester in seventh.