Crystal Palace came from behind to spoil West Ham’s hopes of moving further clear of the relegation zone with a 4-3 victory at Selhurst Park.
Jordan Ayew cancelled out Tomas Soucek’s early opener for the visitors before Wilfried Zaha marked his return with his seventh of the season and Jeffrey Schlupp added another.
Antonio got his name on the scoresheet for the Hammers before the break and Eberechi Eze restored Palace’s advantage with a second-half spot kick.
Aguerd clawed one back to keep his side in it, but the hosts held on to make it 40 points for the season – and likely secure their own top-flight safety.
Palace were buoyed by the return of Zaha, who last featured in Roy Hodgson’s return to the dugout on April 1 but sustained a groin injury in that victory.
Michael Olise quickly found himself punished by the visitors after he nodded down Jarrod Bowen’s corner but into the path of Soucek, who fired past Sam Johnstone on nine minutes.
The advantage was fleeting. Olise repented for his involvement in the opener when he slipped a fine pass to Ayew, who levelled with a lovely low finish and West Ham were soon dealt another blow when Kurt Zouma was forced off.
When Zaha sustained his injury earlier this month Palaces supporters feared the worst – that they had seen their talisman at Selhurst Park for a final time. Instead, he handed Palace the lead on Saturday.
Olise’s cross from the right initially skipped past Ayew but Zaha was waiting at the post where he pounced and gave Lukasz Fabianski no chance as he sent the ball into the top right.
Schlupp extended the hosts’ advantage on 30 minutes as he picked the ball off Soucek and was through on goal, taking his time as he slotted through the legs of Fabianski.
This time it was West Ham with the quick reply, through a corner flicked on by Soucek to Antonio, who headed the ball in at the back post to close the gap and limit the first half to five goals despite a nervy flurry of activity at both ends.
Fabianski got just enough on Olise’s curling effort to tip it over the bar after the restart but the hosts restored their two-goal advantage after Eberechi Eze was deemed to have been dragged down by Nayef Aguerd inside the area.
The Morocco international protested but the penalty stood after a VAR check, Eze making it 4-2 after sending Fabianski the wrong way with his spot-kick to the bottom left corner.
As was the pattern of the afternoon, the pendulum swung back in the opposition’s favour, again from a corner. As the ball initially flicked on by Soucek, three bodies rose and it was Aguerd who was adjudged to have had the last touch at the back post, the goal standing after a VAR check for handball.
Despite both sides threatening, neither was able to take advantage of six minutes of second-half stoppage time, and Palace prevailed on a topsy-turvy afternoon.