Leandro Trossard's superb late goal gave Brighton a gutsy win that dealt a blow to Tottenham's hopes of finishing in the top four.
Following a game of few clear-cut chances, Trossard swerved into the Spurs area in the final minute of normal time before producing a fine finish past Hugo Lloris.
Steven Bergwijn then missed a chance to equalise at the start of stoppage time - one of the home side's rare opportunities.
Spurs stay in fourth, just ahead of Arsenal, while Brighton - in 10th - are on course for their highest-ever top-flight finish.
Graham Potter's side enjoyed the better of a first half where Spurs looked oddly sluggish despite not having played for nearly a week, but after the hosts appeared to improve in the second half, they were undone by a combination of poor defending and fine skill from Trossard.
The Belgian eluded Eric Dier before opening up his body to send a shot with the outside of his right foot low into the far corner of the net.
More to follow.
Player of the match
TrossardLeandro Trossard
Brighton & Hove Albion
Squad number11Player nameTrossard
Squad number8Player nameBissouma
Squad number25Player nameCaicedo
Squad number3Player nameCucurella
Squad number5Player nameDunk
Squad number34Player nameVeltman
Squad number10Player nameMac Allister
Squad number2Player nameLamptey
Squad number12Player nameMwepu
Squad number1Player nameSánchez
Squad number18Player nameWelbeck
Squad number13Player nameGroß
Squad number20Player nameMarch
Squad number14Player nameLallana
Line-ups
Tottenham
Formation 3-4-3
1Lloris
4Romero15Dier33Davies
12Emerson Royal30Bentancur5Højbjerg3Reguilón
21Kulusevski10Kane7Son Heung-Min
1Lloris4Romero15Dier33Davies12Emerson RoyalBooked at 90mins30BentancurBooked at 34minsSubstituted forWinksat 72'minutes5Højbjerg3Reguilón21KulusevskiBooked at 27minsSubstituted forLucas Mouraat 64'minutes10Kane7Son Heung-MinSubstituted forBergwijnat 88'minutesSubstitutes
6D Sánchez8Winks14Rodon19R Sessegnon22Gollini23Bergwijn27Lucas Moura42White57LavinierBrighton
Formation 3-5-2
1Sánchez
34Veltman5Dunk3Cucurella
2Lamptey13Groß8Bissouma25Caicedo11Trossard
12Mwepu10Mac Allister
1Sánchez34Veltman5DunkBooked at 90mins3Cucurella2LampteySubstituted forMarchat 82'minutes13Groß8BissoumaBooked at 58mins25CaicedoSubstituted forLallanaat 78'minutes11Trossard12MwepuBooked at 26minsSubstituted forWelbeckat 45'minutes10Mac AllisterSubstitutes
4Webster9Maupay14Lallana18Welbeck20March23Steele57Offiah58Ferguson60SarmientoReferee:Craig PawsonAttendance:58,685Live Text
Match ends, Tottenham Hotspur 0, Brighton and Hove Albion 1.
Second Half ends, Tottenham Hotspur 0, Brighton and Hove Albion 1.
Lewis Dunk (Brighton and Hove Albion) is shown the yellow card.
Emerson Royal (Tottenham Hotspur) is shown the yellow card for a bad foul.
Leandro Trossard (Brighton and Hove Albion) wins a free kick in the defensive half.
Foul by Emerson Royal (Tottenham Hotspur).
Attempt missed. Steven Bergwijn (Tottenham Hotspur) right footed shot from the centre of the box misses to the left. Assisted by Harry Kane with a headed pass.
Goal! Tottenham Hotspur 0, Brighton and Hove Albion 1. Leandro Trossard (Brighton and Hove Albion) right footed shot from the left side of the box to the bottom right corner.
Danny Welbeck (Brighton and Hove Albion) wins a free kick in the defensive half.
Foul by Cristian Romero (Tottenham Hotspur).
Substitution, Tottenham Hotspur. Steven Bergwijn replaces Son Heung-Min.
Attempt missed. Leandro Trossard (Brighton and Hove Albion) right footed shot from outside the box is close, but misses to the left. Assisted by Danny Welbeck.
Attempt saved. Lewis Dunk (Brighton and Hove Albion) header from the centre of the box is saved in the bottom left corner. Assisted by Pascal Groß with a cross.
Corner, Brighton and Hove Albion. Conceded by Cristian Romero.
Substitution, Brighton and Hove Albion. Solly March replaces Tariq Lamptey because of an injury.
Attempt missed. Danny Welbeck (Brighton and Hove Albion) header from the centre of the box is too high. Assisted by Tariq Lamptey.
Substitution, Brighton and Hove Albion. Adam Lallana replaces Moisés Caicedo.
Attempt saved. Tariq Lamptey (Brighton and Hove Albion) right footed shot from outside the box is saved in the bottom left corner. Assisted by Pascal Groß.
Substitution, Tottenham Hotspur. Harry Winks replaces Rodrigo Bentancur.
Foul by Emerson Royal (Tottenham Hotspur).
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