Sunday's result saw Villa move seven points clear of danger as Paul Lambert inflicted a damaging defeat on his former club, who are 15th in the table and four points above the drop zone.
Wes Hoolahan's third-minute strike for the Canaries was cancelled out by Christian Benteke in spectacular style on 25 minutes and within two minutes, the Belgium striker had netted again with his ninth Premier League goal of the season.
Leandro Bacuna then got in on the act before Sebastien Bassong put through his own net before the half-time whistle. There was little to report from the second half as Villa held firm in front of a low crowd of 30,303 to record only their fourth home league win of the campaign.
Norwich manager Chris Hughton recalled Hoolahan to his side, in place of hamstring injury victim Leroy Fer. Lambert attempted to sign the midfielder in the January transfer window, only to be snubbed. Striker Gary Hooper was brought in for Ricky van Wolfswinkel, who suffered a knee knock in last week's 1-0 win over Tottenham.
After a 1-0 defeat at Newcastle last Saturday, Lambert named an unchanged line-up, with former Norwich striker Grant Holt amongst the substitutes.
The visitors made a flying start and forged ahead after just three minutes. Hoolahan released Hooper down the right then continued his run into the box to get on to the cutback and fire past Brad Guzan into the corner.
Villa had failed to score in their previous three games, and Norwich continued to control the first half until a moment of brilliance from Benteke brought the hosts level in the 25th minute. The Belgian controlled Ron Vlaar's cross on his chest and then volleyed the ball home with his back to the target in spectacular fashion.
And two minutes later, Benteke added a second goal to complete the turnaround. This time, Ashley Westwood was the provider as Benteke powered home a header from five yards from a corner.
Norwich's Alex Tettey was fortunate to receive only a yellow card on the half-hour mark for a studs-up challenge on Nathan Baker.
On 35 minutes, Hoolahan came close to restoring parity once more but Guzan saved his first attempt after a one-two with Hooper and the follow-up header was put behind by Fabian Delph.
Within minutes, Villa had netted a superb third goal on the break. Gabby Agbonlahor burst from midfield and picked the right pass to Andreas Weimann, who then freed Bacuna in the box and he curled a shot past the dive of John Ruddy to find the far corner.
There was still time before the break for Villa's fourth, as Ryan Bertrand found Delph down the left with a great ball and the latter's cross was delivered at pace so Bassong could only slice the ball into the roof of his own net.
Hughton threw on Anthony Pilkington in place of Robert Snodgrass for the second half, and there was a noticeable but understandable lack of pace to proceedings, with Villa having the game pretty much sewn up.
It could have been 5-1 five minutes after the interval only for an unmarked Agbonlahor to head Delph's cross into the grateful arms of Ruddy from six yards.
In the 66th minute, Benteke laid the ball back to the edge of the Norwich area and Weimann met it first time, only to sky his effort high into the stand.
The hosts had a penalty shout on 78 minutes when Agbonlahor's shot from the edge of the area hit Russell Martin on the arm, but referee Anthony Taylor was unmoved.
Norwich's best chance to pull a goal back came four minutes from time. Hooper got in the clear, but his side-foot from the edge of the Villa area was palmed away low to his left by Guzan.
Villa are next in action on March 15 when they entertain Chelsea, while Norwich host Stoke next Saturday.