Match ends, West Ham United 2, Crystal Palace 2.
Conor Gallagher scored the first goals of Patrick Vieira's Crystal Palace reign as West Ham's winning start to the season came to a frustrating end in a belting London derby.
The Hammers were on course to make it three wins out of three when Spaniard Pablo Fornals scored in the 39th minute after playing a slick one-two with forward Michail Antonio.
But Palace were much better after half-time and levelled when midfielder Gallagher, who is on a season-long loan from Chelsea, found the target.
In-form Antonio thought he had won it when he rifled past Vicente Guaita for his fourth goal of the campaign - and his 50th in the Premier League.
However, Gallagher's clever turn and finish - after James McArthur's pass - earned Palace their second point of the season.
Earlier in the game, Palace defender Joel Ward was forced to make a dramatic clearance off his line at 0-0 after Vladimir Coufal's free-kick almost led to an own goal.
Two points dropped for Hammers
West Ham are at the top of the table, level on points with Everton and boasting a superior goal difference as they head into the first international break of the season.
There was no repeat, however, of the rousing celebrations that greeted their first two wins of the season as they twice allowed the lead to slip against Palace.
David Moyes' side have played with real purpose and style in the opening weeks of the season. And before the start of the new campaign the West Ham boss would have settled for seven points from the opening three games.
But this felt like two points dropped against a team that had failed to score in 270 minutes under their new boss.
It could have been worse as Palace finished the game strongly, with Marc Guehi wasting a glorious chance in stoppage time when he sent a free header over the bar.
By the time West Ham play their next game at Southampton on 11 September, Moyes will have added reinforcements. After this game, the Hammers announced they had signed France centre-back Kurt Zouma from Chelsea on a four-year deal for £29.8m.
Encouraging signs for Vieira
Going into the game, Palace were yet to impress under Vieira and it looked like another disappointing afternoon when Fornals broke the deadlock six minutes before half-time.
Their second half performance, however, was their best 45-minute showing under the new manager, who will take heart from the character his side showed.
Palace confirmed the signing of Watford midfielder Will Hughes before kick-off and are likely to be one of the busiest clubs on transfer deadline day after releasing nine senior players at the end of last season.
At least Gallagher's arrival looks like a good piece of business.
At the age of only 21, he showed impressive composure to equalise after Christian Benteke had headed Wilfried Zaha's deep cross into his path.
His second was even better, the England Under-21 international producing a lovely turn before beating Lukasz Fabianski with a clinical finish.
Palace face Tottenham and then Liverpool after the international break but they will take the positives from this battling performance.
- 41RiceBooked at 90mins
- 20BowenSubstituted forLanziniat 79'minutes
- 8FornalsSubstituted forYarmolenkoat 87'minutes
- 18McArthurSubstituted forSchluppat 88'minutes
- 9J Ayew
- Stuart Attwell
- Shots on Target
Second Half ends, West Ham United 2, Crystal Palace 2.
Foul by Jordan Ayew (Crystal Palace).
Aaron Cresswell (West Ham United) wins a free kick in the defensive half.
Attempt missed. Marc Guéhi (Crystal Palace) header from very close range is close, but misses to the right. Assisted by Conor Gallagher with a cross following a set piece situation.
Declan Rice (West Ham United) is shown the yellow card for a bad foul.
Jordan Ayew (Crystal Palace) wins a free kick on the right wing.
Foul by Declan Rice (West Ham United).
Attempt blocked. Christian Benteke (Crystal Palace) right footed shot from outside the box is blocked. Assisted by Tyrick Mitchell.
Substitution, Crystal Palace. Jeffrey Schlupp replaces James McArthur.
Attempt missed. Andriy Yarmolenko (West Ham United) left footed shot from the right side of the box is high and wide to the left. Assisted by Declan Rice.
Substitution, West Ham United. Andriy Yarmolenko replaces Pablo Fornals.
Substitution, West Ham United. Manuel Lanzini replaces Jarrod Bowen.
Foul by James McArthur (Crystal Palace).
Pablo Fornals (West Ham United) wins a free kick on the right wing.
Attempt blocked. Marc Guéhi (Crystal Palace) header from the centre of the box is blocked. Assisted by Joachim Andersen with a headed pass.
Christian Benteke (Crystal Palace) wins a free kick in the attacking half.
Foul by Angelo Ogbonna (West Ham United).
Attempt missed. Pablo Fornals (West Ham United) right footed shot from the right side of the box misses to the left. Assisted by Michail Antonio with a cross.
Goal! West Ham United 2, Crystal Palace 2. Conor Gallagher (Crystal Palace) right footed shot from the centre of the box to the bottom left corner.