Andreas Weimann stepped from the sub's bench to head Villa into the fourth round of the FA Cup at the expense of battling Ipswich Town.
The Austrian striker, who took over from the injured Marc Albrighton just before the interval, clinched Villa's passage with a fine header from Joe Bennett's 82nd-minute cross.
Paul Lambert's side had fallen behind in the 30th minute when Eric Lichaj turned Michael Chopra's low cross into his own net.
But less than a minute after half-time, fit-again Darren Bent equalised with a powerful low shot against club with whom he started his career.
Jordan Bowery, making his first start, almost had an impact in the opening minute.
The former Chesterfield player knocked the ball wide to Charles N'Zogbia and then darted into the goalmouth to meet the Frenchman's cross from the left with a header which was held by keeper Scott Loach.
Joe Bennett and N'Zogbia both fired over as Villa made the early running, although Chopra forced Shay Given into a save with a low shot following a through ball from Jay Emmanuel-Thomas.
Bent unleashed fierce 20-yard free-kick in the 13th minute, his stinging effort hitting a defender's legs and going out for a corner.
And Bent turned creator when he delivered a dangerous low cross from the right. Bowery, sliding in with menace, managed to get a foot to the ball but sent his shot just wide.
That effort drew warm applause which increased as both sets of supporters paid tribute to Stiliyan Petrov - and Villa almost scored while the skipper was saluted, Bowery moving on to Fabian Delph's pass for a low right-foot shot which was just wide of the near post.
But on the half hour mark the home side fell behind - within seconds of almost scoring.
Bowery was desperately unlucky to see Loach push aside his low drive, only for Ipswich to sweep straight to the other end. Chopra crossed hard and low from the right and Lichaj, running back to cover the danger, couldn't avoid knocking the ball into his own net.
That gave the visitors confidence, Given having to save from Lee Martin before Ipswich almost grabbed a second goal in the 36th minute, Chopra meeting a cross from the left with a shot which struck the Villa keeper's knees.
Holte Enders held their breath for a couple of seconds as the ball looped into the air and, thankfully, dropped into Given's arms as he lay on the floor.
Two minutes later, through, skipper Ciaran Clark was close to an equaliser, his firm header from Barry Bannan's corner being cleared from a crowded goalmouth.
The second half was barely 40 seconds old when Villa drew level.
N'Zogbia threaded a fine pass through the middle and Bent held off his marker to send a low-right foot shot past Loach's outstretched arms and into the far corner.
The lively Bowery was proving to be quite a handful for Ipswich with his runs down the left, and in the 59th minute he cut inside for a cross-shot which deflected just over for a corner.
Then Bennett made a forceful run before firing only narrowly off target - and in the 63rd minute Gabby Agbonlahor almost set up a goal immediately after replacing Bowery.
The striker was brought down just outside the penalty area but referee waved play-on, enabling Bent to hit a low which Loach tipped behind.
The second half way pretty much one-way traffic towards the visitors goal but on 79 minutes Given had to make a brilliant reflex save, tipping over a half-volley from sub Aaron McLean.
That let-off had a positive effect on Villa. Three minutes later Bennett produced a pinpoint cross from the left, and Weimann's glancing header left Loach helpless as it flew into the top corner.
Villa: Given; Lichaj, Clark, Baker, Bennett; Albrighton (Weimann 43), Bannan, Delph, Bowery (Agbonlahor 63); N'Zogbia (Ireland 71); Bent. Unused subs: Guzan, Benteke, Stevens, Carruthers.
Ipswich: Loach; Hewitt, Kisnorbo, Smith, Cresswell; Emmanuel-Thomas (McGoldrick 60), Hyam, Reo-Coker, Murphy (Edwards 70), Martin; Chopra (McLean 74). Unused subs: Lee-Barrett, Chambers, N'Daw, Wright.