Brighton's Julio Enciso scored a fantastic equaliser as the Seagulls confirmed Europa League qualification with an entertaining draw against champions Manchester City.
Phil Foden opened the scoring for Treble-chasing City, squeezing the ball beyond Brighton defender Jan Paul van Hecke on the goalline after Erling Haaland's assist left goalkeeper Jason Steele stranded.
Brighton deservedly levelled through 19-year-old Enciso's stunning strike, which arrowed into the top corner from 25 yards.
Haaland had a goal ruled out for a pull on his marker in 79th minute following a video assistant referee review, as Brighton held on for a draw that ends City's 12-match winning run in the Premier League.
As for Brighton, the hard-earned point seals a top-six finish and cements a place in next season's Europa League group stage.
Brilliant Brighton secure sixth
Brighton were good value for their point and on another day could have handed City their first defeat since 5 February.
Danny Welbeck struck the crossbar direct from a free-kick in the 19th minute, while Kaoru Mitoma bundled home from a corner after 31 minutes only to see his goal rightly ruled out for the ball hitting his arm.
Enciso's leveller was brilliant. The Paraguayan midfielder capitalised on City's defenders backing away and sweetly stuck the ball into the top-right corner to net his fourth goal since joining the Sussex club in January.
The hosts continued to push with Welbeck having a goal ruled out for offside on the stroke of half-time.
And after the restart City goalkeeper Stefan Ortega did well to keep out both Mitoma and Evan Ferguson, while Pervis Estupinan fired a long-range effort narrowly wide.
Brighton's 20 shots was the most the Citizens have faced in the league this season.
Roberto de Zerbi's side travel to Aston Villa on the final day of the season on Sunday, safe in the knowledge they have already achieved the club's highest ever top-flight finish.
Haaland denied as winning run stopped
City may have already wrapped up the title and have their sights set on the FA Cup and Champions League finals, but their line-up against Brighton was experienced and full of attacking talent.
Haaland could have opened the scoring in the opening moments but saw his close-range header from Foden's cross fly over the bar.
In the second half Ilkay Gundogan dragged a shot narrowly wide from a tight angle before Haaland had a 37th Premier League goal of the season ruled out for a shirt pull.
After referee Simon Hooper consulted the VAR monitor the Norwegian was adjudged to have fouled Levi Colwill as Cole Palmer sent over a cross.
City end the campaign away to Brentford on Sunday and will finish with at least 90 points in a Premier League season for a record fourth time if they avoid defeat.
The following Saturday they face city rivals Manchester United in the FA Cup final before playing Inter Milan in the Champions League final seven days later.
Player of the match
GilmourBilly Gilmour
Brighton & Hove Albion
Squad number27Player nameGilmour
Squad number20Player nameEnciso
Squad number25Player nameCaicedo
Squad number18Player nameWelbeck
Squad number6Player nameColwill
Squad number22Player nameMitoma
Squad number40Player nameBuonanotte
Squad number29Player namevan Hecke
Squad number30Player nameEstupiñán
Squad number13Player nameGroß
Squad number23Player nameSteele
Squad number10Player nameMac Allister
Squad number28Player nameFerguson
Squad number34Player nameVeltman
Squad number21Player nameUndav
Line-ups
Brighton
Formation 4-2-3-1
23Steele
13Groß29van Hecke6Colwill30Estupiñán
27Gilmour25Caicedo
40Buonanotte20Enciso22Mitoma
18Welbeck
23Steele13Groß29van HeckeBooked at 90mins6Colwill30Estupiñán27GilmourSubstituted forMac Allisterat 52'minutes25Caicedo40BuonanotteSubstituted forVeltmanat 75'minutesBooked at 89mins20EncisoSubstituted forFergusonat 52'minutes22Mitoma18WelbeckSubstituted forUndavat 75'minutesSubstitutes
4Webster5Dunk10Mac Allister21Undav26Ayari28Ferguson34Veltman38McGill51PeupionMan City
Formation 4-3-3
18Ortega
2Walker5Stones16Rodri82Lewis
17De Bruyne8Gündogan20Bernardo Silva
26Mahrez9Haaland47Foden
18Ortega2Walker5StonesSubstituted forGómezat 84'minutes16Rodri82Lewis17De BruyneSubstituted forÁlvarezat 57'minutes8Gündogan20Bernardo SilvaBooked at 41minsSubstituted forPhillipsat 84'minutes26Mahrez9Haaland47FodenSubstituted forPalmerat 51'minutesSubstitutes
4Phillips19Álvarez21Gómez31Ederson62Charles75O'Reilly80Palmer93Robertson96KnightReferee:Simon HooperAttendance:31,388Live Text
Match ends, Brighton and Hove Albion 1, Manchester City 1.
Second Half ends, Brighton and Hove Albion 1, Manchester City 1.
Jan Paul van Hecke (Brighton and Hove Albion) is shown the yellow card for a bad foul.
Erling Haaland (Manchester City) wins a free kick in the defensive half.
Foul by Jan Paul van Hecke (Brighton and Hove Albion).
Erling Haaland (Manchester City) wins a free kick in the attacking half.
Foul by Jan Paul van Hecke (Brighton and Hove Albion).
Attempt missed. Erling Haaland (Manchester City) header from the centre of the box is too high. Assisted by Riyad Mahrez with a cross following a set piece situation.
Joël Veltman (Brighton and Hove Albion) is shown the yellow card for a bad foul.
Cole Palmer (Manchester City) wins a free kick on the left wing.
Foul by Joël Veltman (Brighton and Hove Albion).
Riyad Mahrez (Manchester City) wins a free kick in the defensive half.
Foul by Alexis Mac Allister (Brighton and Hove Albion).
Foul by Kalvin Phillips (Manchester City).
Alexis Mac Allister (Brighton and Hove Albion) wins a free kick in the attacking half.
Rico Lewis (Manchester City) wins a free kick in the defensive half.
Foul by Kaoru Mitoma (Brighton and Hove Albion).
Delay over. They are ready to continue.
Substitution, Manchester City. Kalvin Phillips replaces Bernardo Silva.
Substitution, Manchester City. Sergio Gómez replaces John Stones because of an injury.
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