The Canaries, who were leading the title race heading into the final day of the season, needed just a draw to keep second-placed Sheffield United at bay, the Blades facing Stoke City away from home to round off its own promotion-winning campaign.
Things started brightly for the visitors, Teemu Pukki scoring his 29th league goal just seven minutes into the game, but Villa hit back almost immediately when Jonathan Kodjia got his foot to a set-piece cross to equalise in the 14th minute.
From that moment, Villa started to dominate the contest, Kodjia causing all kinds of headaches for the Norwich defence through a first half almost entirely dominated by the home side, until Onel Hernandez hit the bar with a superb effort for the visitors in first-half stoppage-time.
Norwich continued to look like a side that had wrapped up its season early after the break, with one defensive mishap almost presenting Villa with a goal-scoring opportunity in the 54th minute. WhenTim Krul spilled a relatively tame shot from Albert Adomah with just nine minutes to play, it seemed the nerves were beginning to get to the Canaries.
But as news filtered through that Sheffield United had only managed a draw at Stoke, Norwich appeared to relax, knowing the title was effectively secured, and Mario Vrancic poured a little more fuel on those celebrations with a winner in the 86th minute, created largely by a superb run from deep by Jamal Lewis.
Norwich will celebrate its title and promotion to the Premier League with an open-top bus tour of its home city on Monday, while Villa will prepare for the lottery of the play-offs alongside Leeds United, West Bromwich Albion and Derby County, which sealed its spot with a fine 3-1 win against the Baggies in their last game of the season.