It was the on-loan stars who stole the show in the first half as Jesse Lingard won a penalty before stepping up to miss from the spot, before gratefully hammering home the rebound.
Shortly after Craig Dawson stooped to head home an Aaron Cresswell corner to send the Irons in 2-0 up at half time.
The Hammers came under far more concerted pressure in the second half but were able to hang on for a vital three points.
Here’s how we rated David Moyes‘ men on show…
GOALKEEPER AND DEFENCE
Lukasz Fabianski – 8 – A welcome return to fitness and the side. Beaten twice early on only to see both efforts disallowed. Pulled off a string of fine saves in the second half include one acrobatic effort.
Vladimir Coufal – 7 – Defensively strong throughout and managed to pose an attacking threat as well.
Craig Dawson – 9 – Wanted the ball more in the area and doubled the lead with a stooping header. Almost made it three on the stroke of half time. Reassuring presence at the back in an all-round impressive display capitulated with a goal-line clearance at the death.
Issa Diop – 7 – Made a few mistakes but overall his performance was solid and got stronger as the match went on.
Aaron Cresswell – 7 – Delightful delivery from set-pieces and an assist for the Dawson header. Strong nights work.
Declan Rice – 7 – Industrious as ever with plenty of quality to boot.
Tomas Soucek – 7 – Back to his best after some below-par performances by his standards.
Jesse Lingard – 8 – Showed great feet in an eventful couple of minutes to win the penalty, miss the penalty and react first to fire home the rebound.
Said Benrahma – 7 – Showed his quality with some fine individual moments, a real asset in attack who is adapting more week in week out.
Pablo Fornals – 7 – Inches away from scoring the goal of the season in the second half when a dipping 35-year volley clattered the crossbar. Solid but unglamorous otherwise.
Michail Antonio – 7 – Quiet night by his standards but epitomised the Hammers with his work rate.
Jarrod Bowen (Sub) – 6 – Brought on to help West Ham cope as Leeds pushed for a way back into the match.
Ben Johnson (Sub) – NA – Late change.