Leeds played the whole second half with 10 men as they secured an outstanding win in stoppage time to slow Manchester City’s charge to the Premier League title.
Stuart Dallas put Leeds ahead against the runaway leaders in the first half with a shot that went in off the post.
Skipper Liam Cooper was then sent off for a challenge on Gabriel Jesus.
Ferran Torres equalised but Leeds celebrated a famous win after Dallas scored an 91st-minute winner.
Despite a first defeat since 7 March, City are only 11 points from guaranteeing a third league crown in four seasons under Pep Guardiola, with six matches left.
The players wore black armbands and there was a period of silence before the game for Prince Philip, the Duke of Edinburgh, who died at the age of 99 on Friday.
More to follow
- 6AkÃ©Booked at 35minsSubstituted forGÃ¼ndoganat 58′minutes
- 22MendySubstituted forFodenat 74′minutes
- 20Bernardo SilvaBooked at 83mins
- 25FernandinhoBooked at 90mins
- 9Gabriel Jesus
- 3RÃºben Dias
- 17De Bruyne
- 6CooperBooked at 45mins
- 10AlioskiBooked at 66mins
- 18RaphinhaSubstituted forShackletonat 90+6′minutes
- 11RobertsSubstituted forKochat 63′minutes
- 17HÃ©lder Costa
- 9BamfordSubstituted forStruijkat 45+3′minutes
Match ends, Manchester City 1, Leeds United 2.
Second Half ends, Manchester City 1, Leeds United 2.
Substitution, Leeds United. Jamie Shackleton replaces Raphinha because of an injury.
Fernandinho (Manchester City) is shown the yellow card for a bad foul.
Foul by Fernandinho (Manchester City).
Raphinha (Leeds United) wins a free kick in the attacking half.
Goal! Manchester City 1, Leeds United 2. Stuart Dallas (Leeds United) right footed shot from outside the box to the bottom left corner. Assisted by Ezgjan Alioski with a through ball.
Attempt saved. Fernandinho (Manchester City) header from the centre of the box is saved in the centre of the goal. Assisted by Ilkay GÃ¼ndogan with a cross.
Attempt blocked. Gabriel Jesus (Manchester City) right footed shot from outside the box is blocked. Assisted by JoÃ£o Cancelo.
Foul by Raheem Sterling (Manchester City).
Ezgjan Alioski (Leeds United) wins a free kick in the defensive half.
Attempt missed. Bernardo Silva (Manchester City) left footed shot from the centre of the box is close, but misses the top left corner. Assisted by Ferran Torres.
Ilkay GÃ¼ndogan (Manchester City) wins a free kick in the defensive half.
Foul by Kalvin Phillips (Leeds United).
Bernardo Silva (Manchester City) is shown the yellow card for a bad foul.
Foul by Bernardo Silva (Manchester City).
Raphinha (Leeds United) wins a free kick in the defensive half.
Corner, Manchester City. Conceded by Ezgjan Alioski.
JoÃ£o Cancelo (Manchester City) wins a free kick in the attacking half.
Foul by HÃ©lder Costa (Leeds United).