Joel Veltman scored only his second goal for Brighton
West Ham will have to settle for a place in the Europa Conference League after Brighton came from behind to win at Amex Stadium.
Michail Antonio's blistering strike lit up the game only for a rare goal from Joel Veltman to level matters.
Pascal Gross flashed a shot past Lukasz Fabianski and Danny Welbeck headed home a third in stoppage time.
The win sealed an impressive top-half finish for Brighton after a record-breaking season on the south coast.
With their record top-flight points tally already secured, Brighton finished the season in style with a victory against another top-eight side - after wins over Spurs, Arsenal and Manchester United in the final six weeks.
Their success has been built on outstanding away form - only Manchester City, Liverpool, Chelsea and Tottenham have picked up more points on the road - although two consecutive wins at home to end the season cannot mask a disappointing campaign at home.
They looked toothless in the first half but a half-time tactical tweak from their impressive manager Graham Potter breathed new life into the Seagulls.
In pairing Neal Maupay with Welbeck up front, he gave Brighton a twin threat that paid immediate dividends when Veltman popped up to squirm a shot under Fabianski straight after the break.
Gross put them in front with 10 minutes to go when he worked space on the edge of the box to fire home before Welbeck sealed a thoroughly satisfying afternoon in the final minute of stoppage time.
One game too many for the Hammers
For West Ham, the 56th game of their gruelling season was a step too far but at least they can look forward to another European adventure next year.
They matched Brighton for possession with Declan Rice typically dominant, but lacked the spark to break down the rugged back four installed by Potter.
Their one moment of real quality came from the boot of Antonio, although there was a whiff of controversy about it as he levered Lewis Dunk out of a challenge before ruthlessly smashing the ball past Robert Sanchez.
Antonio has had a rollercoaster season, a prolific first two months followed by barren runs - this was only his second Premier League goal since New Year's Day - and David Moyes will need to bring in some support for him in the summer if West Ham intend to succeed on all fronts.
He battled manfully throughout but, with top scorer Jarrod Bowen well shackled, West Ham attacks were focused down the right hand side where Vladimir Coufal was kept in check by Marc Cucurella.
After Gross' goal, Moyes sent on captain Mark Noble for his 414th - and final - Premier League appearance for the club he has served so well for 18 years.
He had little time to inspire a revival and his distinguished career ended with a defeat.
More to follow.
Player of the match
with an average of 7.82
- BrightonBrighton & Hove AlbionBrighton & Hove AlbionWest HamWest Ham UnitedWest Ham United
Brighton & Hove AlbionAvgSquad number2Player nameLampteyAverage rating
Squad number12Player nameMwepuAverage rating
Squad number18Player nameWelbeckAverage rating
Squad number13Player nameGroßAverage rating
Squad number34Player nameVeltmanAverage rating
Squad number9Player nameMaupayAverage rating
Squad number3Player nameCucurellaAverage rating
Squad number20Player nameMarchAverage rating
Squad number25Player nameCaicedoAverage rating
Squad number5Player nameDunkAverage rating
Squad number10Player nameMac AllisterAverage rating
Squad number8Player nameBissoumaAverage rating
Squad number4Player nameWebsterAverage rating
Squad number1Player nameSánchezAverage rating
West Ham UnitedAvgSquad number41Player nameRiceAverage rating
Squad number20Player nameBowenAverage rating
Squad number9Player nameAntonioAverage rating
Squad number16Player nameNobleAverage rating
Squad number15Player nameDawsonAverage rating
Squad number5Player nameCoufalAverage rating
Squad number28Player nameSoucekAverage rating
Squad number3Player nameCresswellAverage rating
Squad number10Player nameLanziniAverage rating
Squad number8Player nameFornalsAverage rating
Squad number1Player nameFabianskiAverage rating
Squad number4Player nameZoumaAverage rating
Squad number7Player nameYarmolenkoAverage rating
Squad number31Player nameJohnsonAverage rating
- Line-upsMatch StatsLive Text
- 1Sánchez34Veltman4Webster5Dunk20MarchSubstituted forLampteyat 75'minutes8BissoumaSubstituted forMaupayat 45'minutesBooked at 83mins25CaicedoSubstituted forMwepuat 79'minutes3Cucurella13Groß10Mac Allister18Welbeck
- 1Fabianski5CoufalSubstituted forJohnsonat 81'minutes15Dawson4Zouma3Cresswell28SoucekBooked at 42mins41Rice20Bowen8FornalsSubstituted forNobleat 81'minutes10LanziniSubstituted forYarmolenkoat 81'minutes9Antonio
Referee:Kevin FriendAttendance:31,604Match StatsHome TeamBrightonAway TeamWest HamPossessionHome50%Away50%ShotsHome18Away7Shots on TargetHome7Away2CornersHome5Away6FoulsHome9Away9Live TextPost update
Match ends, Brighton and Hove Albion 3, West Ham United 1.
Second Half ends, Brighton and Hove Albion 3, West Ham United 1.
Goal! Brighton and Hove Albion 3, West Ham United 1. Danny Welbeck (Brighton and Hove Albion) header from the centre of the box to the bottom left corner. Assisted by Pascal Groß with a cross following a corner.
Corner, Brighton and Hove Albion. Conceded by Aaron Cresswell.
Marc Cucurella (Brighton and Hove Albion) wins a free kick in the defensive half.
Dangerous play by Ben Johnson (West Ham United).
Attempt blocked. Neal Maupay (Brighton and Hove Albion) right footed shot from the centre of the box is blocked. Assisted by Danny Welbeck.
Attempt saved. Declan Rice (West Ham United) right footed shot from outside the box is saved in the centre of the goal. Assisted by Mark Noble.
Attempt saved. Danny Welbeck (Brighton and Hove Albion) header from very close range is saved in the top centre of the goal. Assisted by Tariq Lamptey with a cross.
Attempt missed. Tariq Lamptey (Brighton and Hove Albion) right footed shot from outside the box is too high. Assisted by Alexis Mac Allister.
Attempt blocked. Aaron Cresswell (West Ham United) left footed shot from the left side of the box is blocked.
Neal Maupay (Brighton and Hove Albion) is shown the yellow card for a bad foul.
Foul by Neal Maupay (Brighton and Hove Albion).
Ben Johnson (West Ham United) wins a free kick on the right wing.
Attempt saved. Enock Mwepu (Brighton and Hove Albion) right footed shot from outside the box is saved in the bottom right corner. Assisted by Marc Cucurella.
Substitution, West Ham United. Mark Noble replaces Pablo Fornals.
Substitution, West Ham United. Ben Johnson replaces Vladimir Coufal.
Substitution, West Ham United. Andriy Yarmolenko replaces Manuel Lanzini.
Goal! Brighton and Hove Albion 2, West Ham United 1. Pascal Groß (Brighton and Hove Albion) left footed shot from the centre of the box to the top left corner. Assisted by Danny Welbeck.
Substitution, Brighton and Hove Albion. Enock Mwepu replaces Moisés Caicedo.
Page 1 of 5rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
- Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment