Christian Benteke left the Villa Park pitch to a standing ovation after inspiring a vital Villa victory with two goals in just over three minutes.
The Belgium international, replaced by Grant Holt nine minutes from the end, had made a stunning impact with a quick-fire brace after Norwich had taken a third-minute lead through Wes Hoolahan.
Villa struggled initially, but after Benteke's burst, they took complete control and effectively had the game won by the interval as Leandro Bacuna and a Sebastien Bassong own goal but them in complete control.
Yet Paul Lambert's men couldn't have made a worse start, having barely settled when Gary Hooper found space on the right and delivered a low cross which Hoolahan converted left-footed as he slid in on the rain-drenched surface.
It was a blow which clearly unsettled the home side, who barely posed a threat in the opening 20 minutes apart from Andi Weimann's angled drive which was well held by John Ruddy.
In fact Norwich went close again when Brad Guzan made a good save from Alexander Tettey's shot in the 22nd minute.
But that sparked Lambert's side into life and they were level a couple of minutes later with a magnificent goal.
Ron Vlaar floated the ball into the penalty area, and despite being closely marked, Benteke controlled it on his chest before hooking a left-foot valley past Ruddy and into the top corner from 12 yards.
Three minutes later, Villa were ahead, Benteke getting in front of his marker from Ashley Westwood's left-wing corner to send a powerful downward header past a bewildered Ruddy.
A quick Norwich response might have been costly but for Guzan's double save from Hoolahan, first from the midfielder's low shot and then from his follow-up header.
But on 37 minutes it was 3-1, thanks to another superbly-constructed goal.
Gabby Agbonlahor made a powerful run from inside his own half before releasing Weimann with a clever reverse pass. The Austrian quickly played it wide to Bacuna, who cut inside Martin Olsson before sending a perfectly-placed left-foot shot into the far corner.
Suddenly, Villa could do no wrong and after Karim El Ahmadi had seen a fierce drive charged down outside the area they pounced again, this time with a little help from the visitors.
Ryan Bertrand's astute pass found Fabian Delph in space down the left, and the midfielder's low cross was turned into the net by Bassong as Agbonlahor put him under pressure.
The visitors made a change at half-time, and Anthony Pilkington almost made an explosive entrance, Bacuna nipping in smartly to get the ball back to Guzan as the Norwich sub lined up a shot.
Villa were quickly back on the offensive, though, Agbonlahor's close-range header being saved by Ruddy following Weimann's pass and another menacing cross from Delph.
Agbonlahor was close again in the 77th minute, his powerful drive from the edge of the area deflecting for a corner off Russell Martin.
The striker was convinced Villa should have had a penalty for handball by the Canaries' right-back but his appeal was ignored by referee Anthony Taylor.
Villa: Guzan; Bacuna, Vlaar, Baker, Bertrand; El Ahmadi, Westwood, Delph; Weimann (Albrighton 81); Agbonlahor, Benteke (Holt 81) Unused subs: Steer, Bennett, Clark, Sylla, Robinson.
Norwich City: Ruddy; Martin, Yobo, Bassong, Olsson; Snodgrass (Pilkington HT), Tettey (Howson 79), Hoolahan, Johnson, Redmond (Elmander 63); Hooper. Unused subs: Bunn, Whittaker, Becchio, Bennett.