Bent (left) was in inspired form in front of England coach Fabio Capello
By Sam Sheringham
Darren Bent scored twice to help Aston Villa dent Arsenal's hopes of automatic Champions League qualification.
The England striker volleyed past Wojciech Szczesny after 11 minutes and latched on to Ashley Young's pass to double the lead four minutes later.
Arsenal fought back and Robin van Persie struck the post before Marouane Chamakh's second-half header was ruled out for a push on Kyle Walker.
Van Persie prodded home a late goal but Villa held on for victory.
The result averted any remaining chance of Villa being relegated this season and moved them into 13th position.
McAllister praises 'outstanding' Villa performance
For Arsenal, a second straight defeat continued an alarming late-season collapse that has seen them win just two of their last 10 league games.
It also provided ammunition to fans eager to see an overhaul at the Emirates in the summer and the compulsory lap of honour by Arsene Wenger and his players following the last home match of the season had anything but a celebratory feel.
The Gunners are now in serious danger of having to negotiate a tricky two-leg qualifier to reach the group stage of the Champions League.
A victory would have taken them within a point of Chelsea in second, but defeat means Manchester City could now go above the Gunners into third with a home victory over Stoke on Tuesday.
Arsenal, who welcomed centre-back Thomas Vermaelen back from an eight-month Achilles injury lay-off, began at a laborious pace, seemingly intent on playing themselves into the game.
Villa, by contrast, looked energetic, quick and purposeful and had already threatened on the counter-attack before Bent gave them the lead.
Walker's chipped pass was inch-perfect for the England striker, who controlled the ball on his chest and stretched to plant a volley over the advancing Szczesny.
Defeat leaves bitter taste - Wenger
Four minutes later, Vermaelen's slip allowed Young the time and space to thread a pass through to Bent, who easily slotted his second goal of the game.
Belatedly, a sense of urgency entered Arsenal's play, and the home side were convinced they should have been awarded a penalty on the half-hour mark.
Aaron Ramsey was lining up a shot inside the box when he was caught by Richard Dunne but referee Michael Oliver waved away the appeals.
Jack Wilshere's through-ball then sent Van Persie racing clear, the Dutchman rounding James Collins before firing a shot against the far post.
Moments later, Vermaelen got his head to a corner but the ball sailed narrowly over the bar.
Wenger brought on striker Chamakh for defender Sebastien Squillaci at half-time.
And while the change was clearly designed to increase Arsenal's options in attack, it was the hole left by the French stopper's absence at the back that almost proved fatal as Bent pounced on a through-ball but his weak shot was easily saved by Szczesny.
From then on, the second half was largely one-way traffic as Arsenal pushed for a lifeline.
The pressure almost told when Van Persie squared for Kieran Gibbs but the left-back's close-range shot was smothered by Brad Friedel.
Shortly afterwards, Van Persie found space in the box but shot wastefully over before Theo Walcott turned Nicklas Bendtner's header the wrong side of the post.
With three strikers on the pitch, Arsenal left themselves open to Villa breaks and a fine run from Stewart Downing set up Young for a low strike that was well-saved by Szczesny, who regained his composure to save Downing's effort from the loose ball.
Arsenal thought they were back in the game when Chamakh rose to head home Walcott's cross but Oliver felt the Moroccan striker had fouled Walker.
The siege finally brought its reward in the 89th minute when Van Persie lashed home a loose ball from close-range and when Dunne conceded a free-kick on the edge of the box deep into stoppage-time, the stage appeared set for a fairytale equaliser from Vermaelen.
But the Belgian's shot struck the wall and moments later boos rang around the stadium as the final whistle confirmed another costly Gunners defeat.
Arsenal manager Arsene Wenger: "For the first 20 minutes we were non-existent. Were we not focussed enough, were we a bit scared after recent bad results? I don't know.
"We want to give the fans what they expect and when you don't do that they are entitled to be unhappy.
"But let's not go overboard, we are not fighting relegation. We want to do well next Sunday. I want to finish on a better game than that."
Aston Villa assistant manager Gary McAllister: "It's a superb result. There are not many occasions where you bring a team to Arsenal and win so we are going to enjoy it.
"We started the game really well - the first goal was an outstanding goal but as a team the players were outstanding.
"The game plan was right and we had a finisher who is hot at the moment scoring two goals."
90:00+4:03 Free kick awarded for a foul by Thomas Vermaelen on Brad Friedel. Free kick taken by Brad Friedel.
90:00+2:25 Unfair challenge on Robin van Persie by Richard Dunne results in a free kick. Robin van Persie restarts play with the free
kick. Thomas Vermaelen takes a shot. Blocked by Luke Young.
90:00+0:11 The free kick is delivered right-footed by Theo Walcott from right channel, James Collins manages to make a clearance.
90:00+0:11 Substitution Emile Heskey on for Fabian Delph.
90:00+0:11 Fabian Delph concedes a free kick for a foul on Alex Song.
89:38 Booking Ashley Young booked for time wasting.
88:55 GOAL - Robin van Persie:Arsenal 1 - 2 Aston Villa Robin van Persie grabs a goal from close range to the bottom right corner of the goal. Arsenal 1-2 Aston Villa.
88:25 Darren Bent is flagged offside by the assistant referee. Thomas Vermaelen takes the free kick.
86:55 Aaron Ramsey produces a right-footed shot from the edge of the area and misses to the left of the target.
84:39 Effort from outside the penalty box by Darren Bent goes wide right of the target.
84:05 Theo Walcott gives away a free kick for an unfair challenge on Ashley Young. Brad Friedel restarts play with the free kick.
83:42 Robin van Persie takes a shot. Save made by Brad Friedel.
81:56 Unfair challenge on Alex Song by Michael Bradley results in a free kick. Free kick crossed right-footed by Theo Walcott from
81:03 Free kick awarded for a foul by Luke Young on Alex Song. Free kick taken by Bacary Sagna.
80:21 Inswinging corner taken by Stewart Downing, Nicklas Bendtner makes a clearance.
79:38 Substitution Michael Bradley replaces Stiliyan Petrov.
Correction - 79:09 Aaron Ramsey takes a shot. James Collins gets a block in.
79:09 Aaron Ramsey has an effort at goal from just outside the box which goes wide of the left-hand upright.
78:52 Thomas Vermaelen takes a shot. James Collins gets a block in.
78:06 Corner taken by Robin van Persie, Alex Song takes a shot. James Collins gets a block in.
77:09 Marouane Chamakh takes a shot. Brad Friedel makes a save.
76:12 Free kick taken by Brad Friedel.
76:12 Booking Nicklas Bendtner booked for dissent.
75:54 Unfair challenge on Kyle Walker by Marouane Chamakh results in a free kick.
73:54 Robin van Persie takes a inswinging corner to the near post, James Collins makes a clearance.
73:40 Theo Walcott takes a shot. Blocked by Richard Dunne.
73:18 Stewart Downing takes a shot. Save made by Wojciech Szczesny.
73:03 Ashley Young takes a shot. Save made by Wojciech Szczesny.
70:43 Corner taken right-footed by Theo Walcott from the left by-line, save by Brad Friedel.
70:32 Aaron Ramsey takes a shot. James Collins gets a block in.
69:39 Stiliyan Petrov gives away a free kick for an unfair challenge on Alex Song. Robin van Persie shoots direct from the free
kick, Nigel Reo-Coker gets a block in.
66:59 Corner taken left-footed by Robin van Persie from the right by-line to the near post, save made by Brad Friedel.
65:30 The assistant referee signals for offside against Theo Walcott. Brad Friedel takes the indirect free kick.
64:37 Fabian Delph gives away a free kick for an unfair challenge on Jack Wilshere. Theo Walcott crosses the ball, Bacary Sagna
takes a shot. Save made by Brad Friedel.
63:26 The free kick is delivered left-footed by Robin van Persie from right channel, clearance made by James Collins.
63:26 Booking Richard Dunne receives a caution.
63:15 Marouane Chamakh fouled by Richard Dunne, the ref awards a free kick.
61:01 Inswinging corner taken by Aaron Ramsey from the left by-line, Shot from inside the six-yard box by Theo Walcott goes wide
right of the goal.
61:01 Substitution Andrey Arshavin goes off and Nicklas Bendtner comes on.
59:04 Shot on goal by Robin van Persie from just inside the area goes over the target.
57:38 Kieran Gibbs takes a shot. Save by Brad Friedel. Corner from the left by-line taken by Aaron Ramsey, Stiliyan Petrov manages
to make a clearance. Jack Wilshere produces a left-footed shot from just outside the area that goes harmlessly over the bar.
Correction - 55:04 The assistant referee signals for offside against Marouane Chamakh. Brad Friedel restarts play with the free kick.
55:04 The assistant referee flags for offside against Marouane Chamakh. James Collins restarts play with the free kick.
52:09 The referee blows for offside against Marouane Chamakh. Free kick taken by James Collins.
48:37 The offside flag is raised against Theo Walcott. Brad Friedel takes the free kick.
46:37 Andrey Arshavin takes a shot. Save by Brad Friedel.
45:32 Darren Bent takes a shot. Wojciech Szczesny makes a save.
45:03 Ashley Young has an effort at goal from long range that misses to the right of the target.
45:01 The referee starts the second half.
45:01 Substitution Marouane Chamakh is brought on as a substitute for Sebastien Squillaci.
45:00+1:06 The referee calls an end to the first half.
44:41 Free kick awarded for an unfair challenge on Richard Dunne by Robin van Persie. Brad Friedel takes the free kick.
43:24 Darren Bent is flagged offside by the assistant referee. Free kick taken by Wojciech Szczesny.
39:38 Foul by Kieran Gibbs on Kyle Walker, free kick awarded. James Collins takes the free kick.
38:03 Inswinging corner taken by Robin van Persie, Headed effort on goal by Sebastien Squillaci from inside the penalty box misses
to the right of the target.
36:17 Corner taken right-footed by Aaron Ramsey from the left by-line, Header on goal by Thomas Vermaelen from inside the box goes
harmlessly over the target.
36:05 Effort from 25 yards by Aaron Ramsey. James Collins gets a block in.
35:50 Effort from inside the box by Robin van Persie strikes the post.
34:32 Booking Stiliyan Petrov is given a yellow card.
30:50 Corner taken by Andrey Arshavin from the left by-line played to the near post, save by Brad Friedel.
30:38 Robin van Persie takes a shot. Richard Dunne gets a block in.
29:59 Foul by Alex Song on Fabian Delph, free kick awarded. James Collins takes the direct free kick.
29:31 Nigel Reo-Coker fouled by Jack Wilshere, the ref awards a free kick. James Collins takes the free kick.
28:27 Corner taken left-footed by Robin van Persie to the near post, James Collins manages to make a clearance.
28:17 Shot by Bacary Sagna. Nigel Reo-Coker gets a block in.
27:56 Andrey Arshavin takes a inswinging corner from the left by-line to the near post, clearance by Darren Bent.
24:13 Booking Nigel Reo-Coker receives a yellow card.
21:53 Corner taken by Andrey Arshavin from the left by-line, save by Brad Friedel.
21:43 Thomas Vermaelen takes a shot. Kyle Walker gets a block in.
19:22 Stiliyan Petrov challenges Alex Song unfairly and gives away a free kick. Sebastien Squillaci restarts play with the free
18:50 The referee blows for offside. Free kick taken by Wojciech Szczesny.
17:39 The referee blows for offside. Indirect free kick taken by Brad Friedel.
14:49 Assist on the goal came from Ashley Young.
14:49 GOAL - Darren Bent:Arsenal 0 - 2 Aston Villa Darren Bent grabs a goal from inside the box low into the middle of the goal. Arsenal 0-2 Aston Villa.
14:25 Robin van Persie challenges Stiliyan Petrov unfairly and gives away a free kick. James Collins takes the free kick.
13:12 Aaron Ramsey fouled by Nigel Reo-Coker, the ref awards a free kick. Free kick taken by Aaron Ramsey.
12:13 Corner taken by Andrey Arshavin, Stiliyan Petrov makes a clearance.
10:53 The assist for the goal came from Kyle Walker.
10:53 GOAL - Darren Bent:Arsenal 0 - 1 Aston Villa Darren Bent grabs a goal from close in to the bottom right corner of the goal. Arsenal 0-1 Aston Villa.
10:20 Corner taken left-footed by Stewart Downing from the right by-line to the near post, clearance by Thomas Vermaelen.
7:43 Unfair challenge on Stiliyan Petrov by Aaron Ramsey results in a free kick. Richard Dunne takes the direct free kick.
6:58 Alex Song fouled by Nigel Reo-Coker, the ref awards a free kick. Bacary Sagna restarts play with the free kick.
0:59 Stiliyan Petrov produces a right-footed shot from 35 yards and missed to the left of the net.
0:00 The match has kicked off.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.