Match ends, Manchester City 3, Aston Villa 2.
Manchester City staged a stunning late comeback with three goals in five minutes to beat Aston Villa and win the Premier League as their title chances looked to be slipping away amid dramatic scenes at Etihad Stadium.
Pep Guardiola's side needed victory to secure their fourth title in five seasons but were facing the prospect of ending the season empty-handed as goals either side of the interval from Matty Cash and Philippe Coutinho put Villa 2-0 ahead and in control.
It looked as if Villa manager Steven Gerrard might help his former club Liverpool secure the title - until City turned the game on its head in an atmosphere bordering on hysteria.
Ilkay Gundogan, on as a substitute for Bernardo Silva, gave City hope with a far-post header in the 76th minute, and Etihad Stadium was a wall of noise when Rodri drove a low finish past Villa keeper Robin Olsen two minutes later.
The title-winning recovery was complete with nine minutes left as Gundogan once again arrived at the far post to put City in front, the decisive contribution on this nerve-shredding final day.
City did need those three points as Liverpool beat Wolverhampton Wanderers - with City boss Guardiola overcome with emotion and breaking down in tears at the final whistle.
- 'Man City show why they can never be called boring'
- Man City investigate after Villa's Olsen assaulted
- 'Legends' - boss Guardiola praises Man City team
- Relive all the final day action!
- Football Daily podcast: Reaction as Man City win title
Man City show grit and class of champions
When Coutinho slid in Villa's second goal, it looked as if the most unpalatable of storylines was being written for Manchester City.
The notion of this supremely talented side ending the season with nothing was in clear view as City knew they had 21 minutes to score three times.
The headlines were being written in large type with Gerrard, who never won the Premier League title during his long career at Liverpool, directing the trophy to Anfield, helped by his former team-mate Coutinho.
And then, in one of the most dramatic twists of any Premier League title race, City knocked down the door that had been firmly slammed in their face by a supremely well-organised Villa.
City looked crestfallen but showed their class and character once Gundogan gave them hope with that header, and they scented their chance, even though some of their fans still feared this might only be a consolation.
Rodri's equaliser was the transformative moment, a sense of inevitability sweeping around a fevered stadium, with a mixture of disbelief and elation the result as Gundogan slid home the third.
Villa did not know what had hit them and had no response, supporters flooding on to the pitch when referee Michael Oliver sounded the final whistle amid a deafening din.
City have had their character questioned this season, especially when they let the Champions League semi-final against Real Madrid slip from their grasp, but there can be no more doubts after this.
The manner in which they turned this game around with the title - and their entire season - on the line was the perfect answer. They were heading towards the most bitter disappointment but transformed this day into one they and their supporters will remember forever.
It was little wonder Guardiola broke down at the conclusion of a truly remarkable afternoon.
Villa collapse under pressure
For Aston Villa, there was nothing significant riding on the game - but the way they went about trying to win it was typical of the Premier League's competitive integrity.
Gerrard and Coutinho's Liverpool connections added the sub-plot. And every part of this storyline delivered.
Villa were solid, disciplined and a real threat on the break, homing in on 37-year-year-old Fernadinho as a defensive weak point for Manchester City.
It worked as City, unusually flat in attack, were vulnerable at the back. When Villa went 2-0 up, it looked as if their season would end in a landmark win - and for Gerrard, the added satisfaction of seeing his beloved boyhood club win the title.
And yet, they were over-run as the City machine suddenly hit top gear, roared forward thunderously by fans whose mood had changed from despair to expectation.
The first 70 minutes at least demonstrated that Gerrard has something to build on. After that, though, Villa were simply swept aside on the tide of Manchester City's power plus the noise and emotion inside Etihad Stadium.
- 25FernandinhoSubstituted forZinchenkoat 45'minutes
- 17De Bruyne
- 20Bernardo SilvaSubstituted forGündoganat 68'minutes
- 26MahrezSubstituted forSterlingat 56'minutes
- 9Gabriel Jesus
- 5MingsBooked at 49mins
- 6Douglas Luiz
- 41J RamseySubstituted forIngsat 83'minutes
- 10BuendíaSubstituted forYoungat 88'minutes
- 23CoutinhoSubstituted forNakambaat 72'minutesBooked at 87mins
- Michael Oliver
- Shots on Target
Second Half ends, Manchester City 3, Aston Villa 2.
Corner, Manchester City. Conceded by Matthew Cash.
Phil Foden (Manchester City) wins a free kick on the left wing.
Foul by Ashley Young (Aston Villa).
Kevin De Bruyne (Manchester City) wins a free kick in the attacking half.
Foul by Marvelous Nakamba (Aston Villa).
Substitution, Aston Villa. Ashley Young replaces Emiliano Buendía.
Marvelous Nakamba (Aston Villa) is shown the yellow card for a bad foul.
Kevin De Bruyne (Manchester City) wins a free kick on the right wing.
Foul by Marvelous Nakamba (Aston Villa).
Phil Foden (Manchester City) wins a free kick in the defensive half.
Foul by John McGinn (Aston Villa).
Foul by Gabriel Jesus (Manchester City).
John McGinn (Aston Villa) wins a free kick in the defensive half.
Substitution, Aston Villa. Danny Ings replaces Jacob Ramsey.
Goal! Manchester City 3, Aston Villa 2. Ilkay Gündogan (Manchester City) right footed shot from very close range to the centre of the goal. Assisted by Kevin De Bruyne.
Attempt missed. Rodri (Manchester City) right footed shot from outside the box is high and wide to the left. Assisted by João Cancelo.
Goal! Manchester City 2, Aston Villa 2. Rodri (Manchester City) right footed shot from outside the box to the bottom left corner. Assisted by Oleksandr Zinchenko.
Attempt saved. John Stones (Manchester City) header from the centre of the box is saved in the bottom left corner. Assisted by Kevin De Bruyne with a cross.
- 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