Gabriel Agbonlahor hit a stunning seven-minute hat-trick as Aston Villa's late show tore Manchester City apart.
Villa had taken the lead when John Carew nodded home Ashley Young's cross.
Elano levelled from the spot after Michael Johnson was fouled but Villa were quickly back in front when Carew's knockdown was fired in by Agbonlahor.
Agbonlahor met Gareth Barry's cross to make it 3-1 then ran on to a slide-rule Barry pass to complete his treble before Vedran Corluka's consolation.
It had already been a traumatic week for City, with the turmoil surrounding the charges that their owner Thaksin Shinawatra faces in Thailand compounded by a shock home defeat by Danish side FC Midtjylland in the Uefa Cup.
And things did not get any better for manager Mark Hughes when Bulgarian forward Valeri Bojinov - set for his first start after a year on the sidelines - was injured in the warm-up at Villa Park.
That meant Hughes, who has a dearth of available strikers, had to bring in Welsh teenager Ched Evans as a last-minute replacement to make his league debut for City.
Interview: Aston Villa boss Martin O'Neill
Evans tried his best on his own up front but, especially in the early stages, most of the action was taking place at the other end of the pitch.
Villa had come through their own midweek European test against Scandinavian opposition with flying colours, thumping FH Hafnarfjordur 4-1, and they picked up here where they left off in Iceland, creating a raft of early chances.
Only poor finishing let Martin O'Neill's side down, with Carew sending a glancing header wide before further tame efforts that failed to seriously test Joe Hart.
Barry should also have done better in front of goal; wasting a decent knockdown from Carew by handling on the edge of the six-yard box, then somehow firing wide when he met a Nigel Reo-Coker cross at the far post.
We let ourselves down - Hughes
But City survived and, once Gelson Fernandes and Michael Johnson had established a base in midfield, prospered.
Micah Richards still had to make an acrobatic clearance to deny Gabriel Agbonlahor, who was waiting to convert a Stilian Petrov cross, but it was City who finished the half the stronger.
That improvement counted for nothing at the start of the second half, however, when Kelvin Etuhu's mistake gifted Villa the lead in the 47th minute.
He gave the ball softly to Young, who exchanged passes with Barry before crossing to the far post for Carew to head home.
City responded with their best spell of the game that saw Javier Garrido's rasping shot deflected wide and Martin Petrov's volley scorch the side-netting.
The visitors kept coming forward and were rewarded after 64 minutes when Johnson broke into the box and evaded Luke Young and Nicky Shorey before eventually being felled by Young.
Referee Phil Dowd pointed to the spot and Elano stepped up to nonchalantly stroke the ball home.
City now looked the more likely winners but Agbonlahor had other ideas.
He beat Fernandes to Carew's header to restore his side's lead on 69 minutes and had soon sealed the victory.
The visitors' defence was nowhere to be seen as he leapt to direct Barry's clipped cross into the net and the same two players combined again to make it 4-1 - Agbonlahor running clear to fire past Hart.
City, to their credit, kept going and substitute Daniel Sturridge brought a fine save from Brad Friedel before Corluka tapped home late on to make the scoreline a little less painful for Hughes' men.
Aston Villa manager Martin O'Neill:
"I am delighted. It was a big victory for us and we played particularly well going forward.
"I was disappointed that we were not ahead at half-time but we had a great second-half.
"It was as important for us to stay tight defensively but I knew that we would create things in attack."
Manchester City boss Mark Hughes:
"We were very much in the game when we levelled and we could have gone on from there and won it.
"We had conceded early on in the second half but we showed good character to come back.
"But then we had 10 minutes of madness. We made some bad decisions at the back and stopped defending set-plays - and you cannot afford to do that against Villa."
Aston Villa: Friedel, Luke Young, Davies, Laursen, Shorey, Reo-Coker, Petrov, Barry, Ashley Young, Agbonlahor, Carew.
Subs Not Used: Taylor, Harewood, Knight, Salifou, Routledge, Gardner, Osbourne.
Goals: Carew 47, Agbonlahor 69, 74, 76.
Man City: Hart, Corluka, Richards, Ben-Haim, Garrido, Etuhu, Gelson (Ireland 81), Johnson, Petrov, Elano, Evans (Sturridge 81).
Subs Not Used: Schmeichel, Michael Ball, Onuoha, Caicedo, Hamann.
Goals: Elano 64 pen, Corluka 89.
Ref: Phil Dowd (Staffordshire).
BBC Sport Player Rater man of the match: Aston Villa's Gabriel Agbonlahor 8.71 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.