Andreas Weimann's stunning equaliser wasn't enough to earn Villa a point against Arsenal but Paul Lambert's side emerged with a lot of credit at the Emirates Stadium.
The Austrian marksman raised hopes of a point with his 68th-minute strike, which cancelled out Santi Cazorla's sixth-minute opener for the Gunners.
But it was Spanish star Cazorla who had the final word, leaving the visitors deflated with a winner five minutes from the end.
Even so, it was an encouraging performance by Villa, who will given a rousing reception by the claret and blue faithful at the final whistle.
It was just a pity Villa started so hesitantly.
Brad Guzan had already made an excellent save before the Gunners went in front, the keeper palming down Jack Wilshere's angled drive after the midfielder had raced clear through the left channel.
But after Cazorla's initial right-foot shot had been blocked by Nathan Baker, the former Malaga man chested down the rebound and drilled home a powerful low drive with his right.
Guzan got a hand to the ball but could do nothing to keep it out.
Arsenal's early superiority gave considerable cause for concern, although the visitors gradually gained a foothold in the game, Charles N'Zogbia having a shot blocked by Carl Jenkinson before Weimann intercepted a Wilshere pass and sent a long ball down the right for the French midfielder.
N'Zogbia cut inside and played a square pass to Gabby Agbonlahor, whose left-foot effort from the edge of the area was pushed away with some difficulty by keeper Wojciec Szczesny.
Then Agbonlahor's superb diagonal pass picked out Weimann on the right - with Gabby agonisingly close to making contact with the Austrian's menacing low cross.
In the 25th minute, N'Zogbia had a first time shot clawed away by Szczesny following Weimann's fine run and cross, although Arsenal still posed a threat, Theo Walcott curling a 31st-minute shot just too high after he had been set up by Abou Diaby.
Joe Bennett did well to clear Nacho Monreal's deep cross with a diving header five minutes before the interval,and there was another scare when Olivier Giroud was in a scoring position a minute later.
Thankfully Guzan was aware of the danger and charged down the Frenchman's low shot.
Ciaran Clark then got in the way of a Giroud drive from the edge of the box as Arsenal finished the opening period on top.
Villa forced two corners in quick succession at the start of the second half, Clark heading the second over the bar when Ashley Westwood delivered his flag kick invitingly from the right.
The home side's response came from a low Cazorla shot which was saved by Guzan as the keeper dived to his right, and a Wilshere drive which deflected over.
Yet Villa might have had an equaliser in the 58th minute, Agbonlahor heading wide at the far post after Christian Benteke's pass had set up Weimann for a deep cross from the right.
Lambert's men came under pressure after that, Matt Lowton doing particularly well to fling himself in the path of Cazorla's fierce drive to divert the ball for a corner.
But Villa held firm before drawing level with a classic counter attack.
N'Zogbia headed down to Weimann in the centre circle and the Austrian motored through the middle, weighing up the options of N'Zogbia to his left and Benteke to his right, before unleashing a tremendous right-foot drive which left Szczesny helpless.
After Guzan had brilliantly tipped over a Cazorla header, though, Arsenal were back in front in the 85th minute, the Spaniard stroking home a low left-foot shot from 10 yards after Monreal had cut the ball inside from the left.
Arsenal: Szczesny; Jenkinson (Podolski 76), Mertesacker, Vermaelen, Monreal; Arteta; Diaby (Ramsey 61), Wilshere, Cazorla; Walcott (Koscielny 90), Giroud. Unused subs: Mannone, Rosicky, Podolski, Oxlade-Chamberlain, Gervinho.
Villa: Guzan; Lowton, Clark, Baker, Bennett; Westwood (El Ahmadi 73), Delph; Weimann, N'Zogbia (Dawkins 82), Agbonlahor; Benteke. Unused subs: Marshall, Holman, Sylla, Bowery, Lichaj.