Manchester City staged a sensational fightback to clinch the Premier League title on an afternoon of unremitting drama at the Etihad Stadium.
Pep Guardiola's team looked as if they might blow it after falling 2-0 behind as Villa Liverpool legend Steve Gerrard looked as if he had handed the championship to his old club.
But City dug deep in to their reserves of character to snatch victory from the jaws of defeat with three goals in five minutes.
Two came from substitute Ilkay Gundogan - sandwiching one from Rodri - as City wrapped up their fourth title in five seasons.
But it was certainly not the way they either wanted or expected to pan out. Matt Cash put Villa ahead in the first half and when former Liverpool player Philippe Coutinho made it two after 69 minutes it looked like City had blown it.
But they deserve enormous credit turning it around. It wasn't quite as dramatic as the last-gasp Sergio Aguero moment when they pipped neighbours Manchester Untied to the title in 2012 but it was pretty close with nerves shredded all round the stadium.
City got an early boost when news emerged that Wolves had taken an early lead at Anfield but they looked nervous in the first half when too many passes were misplaced.
Having successfully frustrated City for 37 minutes, Villa took a shock lead with a goal from Cash following a fine pitch-length move.
Former City player Douglas Luiz started the move, he found Jacob Ramsey who accelerated deep into City's defence before slipping a pass to the overlapping Lucas Digne whose cross was headed home by Cash who had stolen a yard on his marker Joao Cancelo.
Guardiola made a change and re-shuffled his defence at half-time. Fernandinho, who had struggled against the pace of Villa's front line, was replaced by Oleksandr Zinchenko. He went to left back, Cancelo moved to right back and John Stones switched to centre half alongside Laporte.
City pressed hard but Villa always looked dangerous on the break and stunned the home fans crowd by making it 2-0 with a route-one goal. Olly Watkins headed on Robin Olsen's long clearance for Coutinho who cut inside Aymeric Laporte before sliding a shot past Ederson.
But Gundogan proved to be their saviour. The German midfielder headed home at the far post from fellow sub Raheem Sterling's cross then after Rodri had equalised with a precise start from the edge of the area, Gundogan popped up at the far post again to convert Kevin De Bryne's cross send the Etihad into party mode and break hearts over at Anfield where Liverpool had finally overcome Wolves to win 3-1 and finish just a point behind for the second time in four years.
Ederson 6; Stones 6, Fernadinho 5 (Zinchenko 46, 5), Laporte 5, Cancelo 6; Silva 6 (Gundogan 69, 9), Rodri 7, De Bruyne 7; Mahrez 5 (Sterling 56, 7), Jesus 7, Foden 7.
Carson, Walker, Ake, Grealish, Palmer, McAtee.
Goals: Gundogan 76, 81, Rodri 78.
Olsen 7; Cash 7, Chambers 6, Mings 6, Digne 7; McGinn 6, Luiz 7, Ramsey 6 (Ings 82, 5); Buendia 6 (Young 88), Countinho 6; Watkins 6.
Sinisalo, Sanson,Young, Nakamba, Ings, Chukwuemeka, Chrisene, Iroegbunam.
Goal: Cash 37.