Morgan Rogers scored two second-half goals as Aston Villa twice came from behind to beat West Ham and extend their winning run in all competitions to nine matches.
The England midfielder, who had made it 2-2 five minutes in the second half, hammered an unstoppable shot into the top corner with 11 minutes left to put the visitors ahead for the first time in a topsy-turvy encounter.
Struggling West Ham, who were searching for their first victory since 8 November, were gifted an opener after just 29 seconds when Mateus Fernandes dispossessed Ezri Konsa on the edge of the penalty area before beating Marco Bizot with a powerful drive into the top corner from a tight angle.
Konstantinos Mavropanos inadvertently headed John McGinn’s inswinging cross into his own net, while under pressure from Ollie Watkins, to draw Villa level in the ninth minute.
But Nuno Espirito Santo’s side restored their advantage when Jarrod Bowen diverted Freddie Potts’ volley past Bizot to give the Hammers a 2-1 half-time lead.
Unai Emery’s team managed only one shot before the interval, but they restored parity for the second time when Rogers found the bottom corner after West Ham had failed to clear Youri Tielemans’ low cross.
Bowen then had a low, left-footed strike disallowed for offside, before Rogers struck again superbly to move third-placed Villa to within three points of Premier League leaders Arsenal.
West Ham, meanwhile, remain in the relegation zone and could find themselves five points adrift of safety if Leeds beat Brentford in Sunday’s late game.