A late Nicklas Bendtner goal rescued Arsenal after a Philippe Senderos own goal had seemed set to cost them their place at the top of the Premier League.
Bendtner is congratulated by Walcott after his late equaliser
Gabriel Agbonlahor's driven, low cross was turned into his own net by the unfortunate Senderos on 27 minutes.
Villa almost added a second but Manuel Almunia did superbly to turn Shaun Maloney's fierce shot onto the post.
As a below-par Arsenal looked destined for defeat, substitute Bendtner poked in an equaliser in the last 10 seconds.
Arsenal started the match looking determined to shake off the after-effects of last weekend's nightmarish experience at Birmingham, the scene of two points dropped as well as Eduardo's horrific leg break.
And Theo Walcott - up front in place of Eduardo - brought a fine save out of Scott Carson after an exquisite turn and shot.
Soon though, Arsenal were given warning that Villa would launch fast counter-attacks whenever possible.
It took a superbly-timed sliding tackle from William Gallas to prevent Agbonlahor teeing up a shot when clean through in the box.
However, Arsenal might have taken the lead had Senderos not fallen backwards as he volleyed goalwards after a poor punch from Carson.
There was little time for Senderos to reflect on that as Agbonlahor's pace caught Arsenal out and his fierce low cross was turned in by the unfortunate Swiss defender at his near post.
Villa suffered some rotten luck when first Nigel Reo-Coker and then, six minutes later, Curtis Davies had to go off due to injury.
But defensively they remained solid and they also stayed true to their strategy of hitting on the break.
It almost got them a second goal, but Maloney's vicious 25-yard drive was pushed onto the post by a full-stretch Almunia.
As half-time approached Arsenal might have snatched an equaliser after great trickery from Walcott, but Cesc Fabregas fired over from eight yards.
Trying to raise the tempo after the restart, Arsenal surged at Villa and Walcott drove in a shot that Carson palmed around his left post.
A better save came shortly after at the other end, when Almunia did superbly to divert Ashley Young's fizzing shot away from the bottom corner.
Back came Arsenal, and Matthieu Flamini dragged a shot wide before substitute Bendtner missed with a header and Gael Clichy also failed to trouble Carson.
Then a chance for each team in quick succession - and while Almunia was relieved that Agbonlahor shot straight at him, Carson made an outstanding stop from Alexander Hleb.
But as they came forward Arsenal also looked vulnerable and Villa substitute Marlon Harewood smashed a shot at Almunia when he might have done better.
A rising drive from Flamini went over the bar as Arsenal pressed, and it was looking as though Villa would be only the second team to win at The Emirates.
But in added time Bendtner slotted in from six yards following Adebayor's downward header to ensure Arsenal stay a point above Manchester United in the table.
"Everyone goes through a bad spell, but every point gained is of vital importance.
"They were difficult opponents. They defended very well and were sharp on the break.
"We had to dig deep to get to the pace of the game and it was the desire and refusal to lose which got us a point."
Aston Villa boss Martin O'Neill:
"It's hard to describe, to come here and play so well. We deserved to win because we played brilliantly.
"We're capable of attacking every team. We didn't come here just to hit them on the break. We're capable of scoring and, unfortunately, conceding.
"We're a miles better side than when we came here last season."
Arsenal: Almunia, Sagna, Gallas, Senderos (Denilson 78), Clichy, Hleb, Fabregas, Flamini (Silva 78), Diaby (Bendtner 59), Adebayor, Walcott.
Subs Not Used: Lehmann, Justin Hoyte.
Goals: Bendtner 90.
Aston Villa: Carson, Gardner, Laursen, Davies (Osbourne 40), Bouma, Young, Reo-Coker (Knight 32), Barry, Maloney (Harewood 71), Carew, Agbonlahor.
Subs Not Used: Taylor, Salifou.
Booked: Barry, Osbourne.
Goals: Senderos 27 og.
BBC Sport Player Rater man of the match: Aston Villa's Scott Carson 7.03 (on 90 minutes).
• Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.