Villa scratched a seven-year itch to get off to a flying start to their Barclays Premier League campaign.
Denied victory by a late Arsenal equaliser in the first-ever league match at the Emirates Stadium in 2006, Villa kicked off the 2013-14 campaign with a famous victory at the same venue.
Last season's leading scorer Christian Benteke was on target twice to cancel out Olivier Giroud's sixth-minute opener for the Gunners - and visiting fans were over the moon when Antonio Luna marked his debut with a totally unexpected effort four minutes from the end.
There could have been more goals, too. Ashley Westwood forced home keeper Wojciech Szczesny into a spectacular save, while Fabian Delph's stunning low shot thudded off the inside of a post.
Arsenal weren't helped when Laurent Koscielny was sent off for two bookable offences, although the visitors were 2-1 ahead when he was dismissed.
Villa had just begun to settle following an early Gunners onslaught when they were stung by the opening goal.
Tomas Rosicky's pass sent Alex Oxlade-Chamberlain racing clear down the left and the winger cut side before delivering a low cross which Giroud stroked left-footed past the unguarded Brad Guzan from a couple yards.
It was the worst possible start, and there was another problem a couple of minutes later when Nathan Baker required treatment after taking a nasty whack of his foot while clearing from Theo Walcott.
Baker gamely continued but it became increasingly evident that he was struggling and in the 18th minute he was replaced by Ciaran Clark, who was in action almost immediately, getting in the way of a fierce Walcott drive from just outside the penalty area.
But after both Gabby Agbonlahor and Delph had seen left-wing crosses cleared, the visitors were level in the 23rd minute.
Agbonlahor's forceful run took him past two challenges and into the area before he was upended by the advancing Szczesny.
Referee Anthony Taylor immediately pointed to the spot and although Benteke's penalty was saved by Szczesny, the ball looped into the air - and the Belgium international followed up to head home the rebound.
Arsenal were forced to make a substitution just before the half-hour mark, Carl Jenkinson taking over from Kieran Gibbs, who was injured in a clash of heads with Andi Weimann.
The Villa striker also needed treatment, as did Luna, who had earlier taken a blow on the head from Giroud.
Villa were desperately close to a second goal on 37 minutes. Szczeny got himself into trouble when he raced out of the area to clear from Karim El Ahmadi's long ball, and the keeper was still out of position when Westwood floated a shot towards the top corner from 30 yards. But Szczesny redeemed himself by sprinting back to claw the ball away in spectacular fashion.
Villa were relieved when Rosicky lifted his shot well over after playing a one-two with Giroud in the 51st minute, but a couple of minutes later Delph was desperately unlucky not to score his first Barclays Premier League goal.
Creating space for himself 25 yards out, the former Leeds midfielder let fly with a tremendous low left-foot drive which beat Szczesny but struck the inside of the left-hand post, rebounded along the line and went out beyond the far upright.
In the 62nd minute, though, the visitors were in front after Agbonlahor earned another penalty. The club's record Premier League scorer intercepted an Arsenal pass to sprint from the half-way line before being tripped by Koscielny in the penalty area.
This time there was no need for a rebound, Benteke calmly sending his kick low to Szczesny's right as the keeper dived the other way.
Koscielny was booked for the challenge - and a few minutes later the Arsenal centre-back saw red when he was booked for a second foul, this time on Weimann.
Despite being down to 10 men, the Gunners pressed forward strongly, Guzan twice coming to the rescue with vital saves. First the keeper spread himself to block Rosicky's close-range effort, when he turned sub Santi Cazorla's shot against the post.
But after Weimann had seen a shot blocked and Benteke had rolled an angled effort just wide, Luna sealed victory with his coup de grace four minutes from the end.
The Spanish left-back was the last player we expected to see racing clear through the middle when Weimann delivered a perfectly-weighted pass. But he displayed all the composure to drill a low left-foot shot past Szczesny from the edge of the area.
Arsenal: Szczesny; Sagna (Podolski 90), Mertesacker, Koscielny, Gibbs (Jenkinson, 29); Ramsey, Wilshere; Rosicky; Walcott, Giroud, Oxlade-Chamberlain (Cazorla HT). Unused subs: Fabianski, Podolski, Sanogo, Frimpong, Gnabry.
Villa: Guzan; Lowton, Vlaar, Baker (Clark 18), Luna; El Ahmadi, Westwood, Delph; Weimann (Bacuna 87), Benteke, Agbonlahor. Unused subs: Steer, Okore, Helenius, Bowery, Tonev.