Knight earned a point for Aston Villa with a late equaliser
Zat Knight scored in injury-time as Villa hit back from 2-0 down to earn a draw to put them fourth in the table.
Steve Sidwell, Curtis Davies and James Milner all struck the woodwork before Denilson slotted in Arsenal's opener.
Gabriel Agbonlahor's header was cleared off the line before Abou Diaby scored a superb breakaway goal for the second.
Robin van Persie hit the post before Gareth Barry pulled a goal back for Villa from the penalty spot and Knight rescued a point with a 12-yard drive.
It was an astonishing end to a remarkable match that swung wildly one way and then the other.
And while the hosts will be delighted to have secured a draw with a late, late equaliser they might also wonder how they did not virtually secure victory in the first half.
Villa's first chance came from a corner, when Sidwell thumped a header against the near post and shortly after an unmarked Davies headed off target when he should have done better.
The one-way traffic continued when Luke Young shot from the edge of the box and the ball deflected off Mikael Silvestre before being tipped over by Manuel Almunia.
We deserved at least the draw - O'Neill
Next Gabriel Agbonlahor's shot was well saved by Almunia and the follow-up effort from Sidwell was superbly blocked by William Gallas.
It seemed a matter of time before Villa's onslaught would bring the breakthrough but when Milner slid in to poke goalwards at the near post, the ball came back off the post and into Almunia's arms.
And Davies became the third Villa player to be denied by the frame of the goal when his hooked shot crashed against the bar.
Then as Arsenal made a rare foray into Villa territory, Nigel Reo-Coker hesitated in possession, which allowed Denilson to nip in, steal the ball and slide his shot home for the opener.
It was a stunning blow to Villa, and more frustration was to follow when Agbonlahor's header looked destined to bring the equaliser but Bacary Sagna produced a breathtaking overhead kick to clear the ball off his goalline.
And, after the break, Arsenal delivered a hammer blow when Diaby broke from inside his own half, laid the ball off to Emmanuel Eboue, continued his run and smashed the ball in after collecting the return pass.
For the first time in the match, Arsenal looked fluent and they could have wrapped up the points when the ball fell to Van Persie in the box but the Dutchman cracked his shot against the post.
Eboue also had a chance to score Arsenal's third but Davies made a terrific block to deny him.
Late equaliser 'frustrating' - Wenger
Then at the other end, Sagna somehow nicked the ball off Ashley Young's toes as he looked set to convert Sidwell's cross.
Just when it seemed Villa would get nothing at all from the game, they won a penalty when Gallas upended Agbonlahor and Barry smashed in the resultant spot-kick.
Milner was then denied by Silvestre, who got in another vital block, as Villa pressed for a leveller.
And with time running out, the hosts earned their draw when Stiliyan Petrov's cross fell to defender Knight and he rifled the ball in.
Aston Villa: Friedel, Reo-Coker, Davies, Knight, Luke Young, Milner, Sidwell, Petrov, Barry, Ashley Young, Agbonlahor.
Subs Not Used: Guzan, Harewood, Delfouneso, Salifou, Shorey, Gardner, Osbourne.
Booked: Agbonlahor, Reo-Coker, Petrov, Barry.
Goals: Barry 65 pen, Knight 90.
Arsenal: Almunia, Sagna, Eboue, Toure, Silvestre, Song Billong (Ramsey 43), Denilson, Nasri (Clichy 82), Diaby, Gallas, Van Persie.
Subs Not Used: Fabianski, Vela, Wilshere, Bendtner.
Booked: Song Billong, Toure, Diaby, Van Persie.
Goals: Denilson 40, Diaby 49.
Att: 42,585
Ref: Lee Mason (Lancashire).
BBC Sport Player Rater man of the match: Aston Villa's Ashley Young 7.49 (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.
Bookmark with:
What are these?