Match ends, Crystal Palace 1, West Ham United 3.
West Ham moved into third in the Premier League thanks to two late goals against 10-man Crystal Palace.
The Hammers went in front through Carl Jenkinson, before Yohan Cabaye made it 1-1 with a twice-taken penalty.
Dwight Gayle, who won the penalty, was shown a second yellow just before the break for a foul on Cheikhou Kouyate.
With two minutes left Manuel Lanzini drove in before Dimitri Payet dinked his effort over Wayne Hennessey to seal victory for the Hammers.
Gayle blows too hard
Palace manager Alan Pardew stuck by his recent policy of picking one striker up front - and today it was the turn of Gayle, who was only making his fourth league appearance of the season.
The 24-year-old, who opted not to join Bristol City in the summer after an offer was accepted, was looking to impress his boss but ended up being a little over-zealous in his efforts.
The warning signs were there when he brought down Payet, earning him a yellow card. Within moments he nudged Hammers keeper Adrian after the ball had gone out of play, and then came the second caution. Some will say it was soft, but he did catch Kouyate late, treading on top of the midfielder's foot.
With a one-match ban to serve, he may find it hard to force his way back into the starting line-up with the likes of Connor Wickham, Fraizer Campbell, Bakary Sako and Patrick Bamford all vying for inclusion.
West Ham make it count... only just
To coin a well-worn cliche, the scoreline was not a fair reflection of the game.
The Hammers only managed four shots on target in the entire match, from which they scored three times. Playing against 10-man Palace in the second half, they only conjured up eight efforts on goal - the same as in the first 45 minutes.
The late, late show was purely down to Palace players tiring and West Ham having enough craft to break their resolve, with Lanzini central to the home side's downfall.
After slamming home the second, Lanzini then played a delightful pass for Payet's deft strike. They were the only two efforts on target the Hammers managed after the break, but the Slaven Bilic's men made them count.
Man of the match - Manuel Lanzini (West Ham)
What the managers said
Crystal Palace manager Alan Pardew: "I'm frustrated with the decision (Gayle's red card).
"Our striker gets booked for a bad challenge, quite rightly. The second challenge, the referee knows he's booked, he's missed it by a centimetre probably and he sends him off.
"I thought a man of his experience perhaps should have looked at that situation and given him his final warning. But to send him off really spoiled the occasion for everybody.
"I'm not excusing him from complete blame. The second challenge, he shouldn't make. He'll have to learn from that. Having said that, I still think it was very harsh to send him off.
"In the second half, we've had to show our typical Crystal Palace resilience. We dug in and it looked like we'd get the point that perhaps we deserved for the effort that we put in. but fair play to West Ham. They kept knocking and found a way."
West Ham manager Slaven Bilic: "We knew it was going to be a hard game. I said that before the game - this was the game I was looking forward to the most.
"Palace are playing as a team, they have pace and a lot of front players who can make the pitch very short. They are what a manager wants his team to be.
"It was a big test for us, but the way we approached it from the beginning, with respect for them but with confidence passing the ball, I'm so proud.
"So far for me, it's the proudest moment because of the way we did it."
The stats you need to know
- Jenkinson has two goals in seven Premier League apps this season, compared to one in 69 appearances before this campaign.
- Cabaye became only the fourth player in Premier League history to score a penalty in four successive appearances (Ian Wright 1994, Ruud van Nistelrooy 2003, Michael Owen 2003).
- West Ham have scored 12 goals in five away Premier League games this term, netting at least twice in all five of them.
- Payet has had a hand in 15 goals (six goals, nine assists) in his last 17 league appearances (Premier League and Ligue 1 combined).
High-flying Hammers face a home match against "struggling" Chelsea next Saturday, while Palace face Leicester away on the same day.
- 7CabayeSubstituted forLedleyat 77'minutes
- 18McArthurSubstituted forJedinakat 63'minutesBooked at 69mins
- 11ZahaSubstituted forSakoat 45'minutes
- 16GayleBooked at 44mins
- 5TomkinsBooked at 20mins
- 16NobleSubstituted forCarrollat 62'minutes
- 20MosesSubstituted forZárateat 74'minutes
- 27PayetBooked at 40mins
- 15SakhoSubstituted forJelavicat 85'minutesBooked at 90mins
- 11E Valencia
- Mark Clattenburg
- Shots on Target
Second Half ends, Crystal Palace 1, West Ham United 3.
Goal! Crystal Palace 1, West Ham United 3. Dimitri Payet (West Ham United) right footed shot from the centre of the box to the centre of the goal. Assisted by Manuel Lanzini with a through ball.
Nikica Jelavic (West Ham United) is shown the yellow card.
Offside, West Ham United. Andy Carroll tries a through ball, but Nikica Jelavic is caught offside.
Foul by Nikica Jelavic (West Ham United).
Pape Souaré (Crystal Palace) wins a free kick in the defensive half.
Attempt blocked. Andy Carroll (West Ham United) left footed shot from outside the box is blocked. Assisted by Dimitri Payet.
Attempt missed. Mauro Zárate (West Ham United) right footed shot from outside the box is close, but misses to the left. Assisted by Dimitri Payet.
Goal! Crystal Palace 1, West Ham United 2. Manuel Lanzini (West Ham United) left footed shot from the centre of the box to the centre of the goal. Assisted by Nikica Jelavic.
Attempt blocked. Mauro Zárate (West Ham United) left footed shot from outside the box is blocked.
Attempt blocked. Dimitri Payet (West Ham United) right footed shot from outside the box is blocked.
Substitution, West Ham United. Nikica Jelavic replaces Diafra Sakho.
Foul by Manuel Lanzini (West Ham United).
Mile Jedinak (Crystal Palace) wins a free kick in the defensive half.
Attempt missed. Manuel Lanzini (West Ham United) right footed shot from outside the box is too high. Assisted by Dimitri Payet.
Attempt missed. Mauro Zárate (West Ham United) left footed shot from outside the box is close, but misses to the right. Assisted by Cheikhou Kouyaté.
Substitution, Crystal Palace. Joe Ledley replaces Yohan Cabaye.
Attempt missed. Andy Carroll (West Ham United) left footed shot from outside the box is too high. Assisted by Manuel Lanzini following a corner.
Substitution, West Ham United. Mauro Zárate replaces Victor Moses.