Kickoff was delayed by nearly an hour as chaotic scenes ended up with the Manchester United bus being pelted with bottles. But once the dust settled, it was West Ham who stepped up to the plate to give their home of 112 years the fondest of farewells, at the expense of Manchester United.
West Ham fought back from a goal down in the second half to dent Manchester United's hopes of finishing in the top four of the Premier League, thanks to a winner from Winston Reid. Before that, Mikhail Antonio had drawn parity after Anthony Martial had struck twice in the second half to drown out Diafra Sakho's early goal.
West Ham started the game brighter, dominating Manchester United from the first whistle, with the goal coming in the tenth minute of the game as Aaron Cresswell found Manuel Lanzini, who with space on the inside left channel, cutback for Sakho to finish with the aid of a deflection off Daley Blind.
The goal was no more than West Ham deserved, with Andy Carroll and Dimitri Payet missing a couple of really good opportunities. Payet and Lanzini were running things, with Carroll a constant menace to the Manchester United defence.
However, the scoreline stayed 1-0 at halftime, and six minutes into the second 45, there was Martial, back from a hamstring problem, to draw Manchester United level. David De Gea took a long kick which fell to Marcus Rashford, who gave the ball for Juan Mata to cross for Martial, with the Frenchman making no mistake from close range.
Manchester United weren't done with their comeback, as, on 72 minutes, Martial again found the back of the net, this time at the near post of Darren Randolph, after some good work from Wayne Rooney and Rashford.
However, West Ham refused to bid goodbye to the Boleyn Ground with a defeat â€“ the club will move into the Olympic Stadium from next season â€“ and Antonio finished off a cross from Payet, before the Frenchman setup Reid, who powered a header past De Gea after getting the better of Blind.
The win keeps West Ham in the race for the Europa League places, while Manchester United, who had top four destiny, and a place in the Champions League next season, in their own hands going into this game, stay two points behind Manchester City.
City now need to lose to Swansea City in their final game for Manchester United, who host Bournemouth, to have any chance of finishing in the top four.