Sebastien Haller's sensational overhead kick earned West Ham a hard-fought 1-1 draw with Crystal Palace at the London Stadium.
The home side were laboured and lethargic in the first 45 minutes and although Palace failed to extensively test Lukasz Fabianski, they did take a first half lead thanks to Christian Benteke's powerful header.
The Belgian wriggled free of Issa Diop to meet Joel Ward's pinpoint cross from the right, but he would go from hero to villain in the second half as he saw red for two yellow cards. Before that though, Haller took centre stage - acrobatically smashing home Vladimir Coufal's perfectly dinked cross past a helpless Vicente Guaita.
But enough of all that, eh, let's rate some players.
David Moyes has agreed new three-year contract at West Ham United.
West Ham have announced David Moyes has signed a new three-year deal at the London Stadium.
Nuno Espirito Santo will not be named Crystal Palace manager after a breakdown in talks.
Player ratings from Wales' 1-1 draw with Switzerland in their first group game of Euro 2020.
1. Goalkeeper & Defenders
Lukasz Fabianski (GK) - 6/10 - Couldn't do much to prevent Benteke's header from close range and had little else to do.
Vladimir Coufal (RB) - 8/10 - A truly sensational signing who continues to get better and better. Works as hard as anybody, linked up well with the lively Bowen and put the ball on a plate for Haller's brilliant equaliser.
Issa Diop (CB) - 5/10 - Back in the side for Fabian Balbuena but looked off the pace. Allowed Benteke to get across him for the header, affording him far too much room to head past Fabianski.
Angelo Ogbonna (CB) - 6/10 - Not his best night in defence, perhaps because he didn't have his usual central defensive partner alongside him.
Aaron Cresswell (LB) - 5/10 - Seemed to turn his ankle midway through the first half and didn't provide as much of a threat going forward as he usually does.
Declan Rice (CM) - 6/10 - Did okay in the heart of midfield, and was full of his usual running. Improved after the break as West Ham began to get more of a foothold in the game.
Tomas Soucek (CM) - 5/10 - Looked a little short on gas in midfield, and that's hardly surprising given he's barely had a rest since he joined West Ham.
Said Benrahma (AM) - 6/10 - Floated around behind Haller in the first half and was pushed out to the left after Fornals' withdrawal. Can see he has bags of ability but didn't grab the game by the scruff of the neck. Subbed.
Jarrod Bowen (RW) - 7/10 - Is fast becoming West Ham's most dangerous outlet going forward, and has a really good thing going with Coufal. Taken off for fresh legs late on.
Sebastien Haller (ST) - 8/10 - Probably deserves 11/10 for scoring an absolutely incredible overhead kick. An utterly brilliant moment of individual skill that may just save his West Ham career.
Pablo Fornals (LW) - 5/10 - Struggled to have any kind of impact in the first 45 minutes, and was unsurprisingly hooked as the hosts looked to get back into the game.
Manuel Lanzini (AM) - 6/10 - Brought on at the start of the second half to make things happen, and did help push the Hammers further upfield. Probably a little miffed that Haller has stolen his worldie goal thunder.
Andriy Yarmolenko (RW) - N/A
Robert Snodgrass (LW) - N/A
5. Goalkeeper & Defenders
Vicente Guaita (GK) - 6/10 - Was left grasping at thin air by Haller's sumptuous finish, but did get down smartly to save from Bowen in the first period.
Joel Ward (RB) - 7/10 - Took advantage of a slow opening to the game from West Ham, helping Palace seize control down the right in the opening 45. Faded after the break.
Cheikhou Kouyate (CB) - 6/10 - Kept Haller under wraps for the most part - apart from when he tore the net a new one.
Scott Dann (CB) - 6/10 - Had things under control for the majority of the game, but did look a little nervy as the hosts increased the pressure after Benteke's sending off. Booked.
Patrick van Aanholt (LB) - 6/10 - Not much joy for the Dutchman on the night, but does that really matter when you've previously battered Katie Hopkins on Twitter? Probably not.
Andros Townsend (RM) - 7/10 - Lively in the first half as Palace came out of the blocks quickest. Saw less of the ball in the second half, but worked hard as per.
James McArthur (CM) - 6/10 - Rarely gives the ball away, acting as the model of consistency in the middle of the park. Underrated.
Luka Milivojevic (CM) - 6/10 - Like McArthur, rarely puts a foot wrong and matched up evenly against Soucek and Rice. Lacks a real cutting edge, however.
Eberechi Eze (LM) - 7/10 - A real bright spark who is only getting better at this level. Unfortunate to be withdrawn when Benteke saw red, but needs must.
Wilfried Zaha (ST) - 6/10 - Often looked at for inspiration, but was relatively quiet throughout. Felt hard done by on a number of refereeing decisions, as per.
Christian Benteke (ST) - 6/10 - A trademark Christian Benteke performance that consisted of a great header, a glorious chance spurned and two yellow cards.
Jordan Ayew - 6/10 - Called upon to lead the line after Benteke's dismissal. Didn't have a great amount of time to get involved.