The hosts took a deserved lead through Steve Morison after a long ball from goalkeeper Mark Bunn, but Brett Holmann equalised with a great strike seconds later.
Despite the match being a quite even battle, Villa got the all important goals late on as an Andreas Weimann double and Christian Benteke gave Paul Lambert a win on his return to Carrow Road.
Norwich made three changes from the weekend as Steven Whittaker, Javier Garrido and Wes Hoolahan dropped out for Leon Barnett, Marc Tierney and Steve Morison.
Aston Villa made one more change than their hosts, as Brad Guzan, Barry Bannan, Ashley Westwood and Gabriel Agbonlahor all sat out, with Shay Given, Karim El Ahmadi, Fabian Delph and Darren Bent replacing them.
The match started at an electric pace, with a marvellous atmosphere the soundtrack at Carrow Road as both sides created big chances in the early stages.
First of all, Robert Snodgrass got down the right before seeing his cross tipped on to the post by Shay Given, while Villa went straight down the other end and forced a big save from Mark Bunn as Darrent Bent failed to convert when one-on-one.
The hosts were soon back on the attack as Anthony Pilkington broke down the left after a great pass from Bradley Johnson, but the winger’s shot was dreadful, finding its way out to the right wing, but Hughton’s side soon had the lead.
After two great Villa chances, Norwich marched straight down the other end and Morison stroked the ball past Given after a mistimed header from Nathan Baker played the striker through on goal. The lead lasted a matter of seconds, however.
The visitors proceeded straight to the Norwich goal from kick-off, and after a long ball from the midfield, a combination of Christian Benteke and Leon Barnett saw the ball drop for Holman and the midfielder lashed a shot home from the edge of the area.
The visitors arguably controlled the rest of the first half, but after chances for both teams the score remained level at halftime, lining up a mouth-watering second period.
Villa finished the first half on the front foot, but Norwich came out after the break with a quick start as Morison first headed over a great chance, and then chipped an even better effort over the bar before having a goal ruled out for offside.
They started the second half quietly, but Villa fans were soon celebrating again as Benteke headed Andreas Weimann’s cross into the far corner, but like Morison’s effort before, it too was disallowed for offside.
Both sides were on the offensive late on, but Villa got themselves in front as Eric Lichaj put in an excellent cross from the left, and after Benteke left it, Weimann nudged it home.
The Austrian got his second two minutes later as Benteke stole the ball from Barnett and Bunn before taking his time to pick out Weimann, who knocked the ball home with ease.
The unplayable Benteke rounded off the win with a great strike in the dying moments for good measure as Villa march through to the semi-finals.