Substitute Lukas Podolski's deflected free-kick earned Arsenal victory and left battling Stoke City deflated at Emirates Stadium.
Potters goalkeeper Asmir Begovic produced a series of fine saves before Podolski struck in the closing stages.
Begovic denied Alex Oxlade-Chamberlain from five-yards, kept out Laurent Koscielny's header, then saved Oxlade-Chamberlain's angled drive.
But Podolski's set-piece went in off Geoff Cameron to take the points.
Wenger happy with 'vital' Arsenal win
It was tough on Stoke, who looked set to end a run of seven straight league defeats away to the Gunners before Podolski pounced 12 minutes from time.
The visitors claimed Olivier Giroud was in an offside position when the German's free-kick deceived Begovic after cannoning off Cameron. Referee Chris Foy consulted with his assistant before allowing the goal.
Stoke were clearly agitated by the decision, with the game threatening to boil over in the closing stages. Potters substitute Michael Owen appeared to thump Mikel Arteta on his back after the Spaniard had challenged the former England striker.
Smiles in the end for Arsene Wenger but it required a huge slice of luck for Arsenal to finally find the net after a battling Stoke performance. The visitors will complain about the goal while there were a couple of meaty challenges towards the end. But this was far from a comfortable win for the Gunners."
But their form has been erratic of late, with three wins, three draws and two defeats since the turn of the year.
And for long spells Gunners boss Arsene Wenger seemed frustrated as he prowled the touchline.
His side carved out a string of chances but found Begovic, 25, in inspirational form.
67:22 Substitution Lukas Podolski comes on in place of Alex Oxlade-Chamberlain.
63:48 Ryan Shawcross has an effort at goal from just outside the area which goes wide of the left-hand post.
61:09 Geoff Cameron is caught offside. Laurent Koscielny takes the indirect free kick.
55:18 Effort on goal by Olivier Giroud from deep inside the area goes harmlessly over the bar.
51:04 Ryan Shotton concedes a free kick for a foul on Alex Oxlade-Chamberlain. Jack Wilshere takes the free kick.
50:20 Free kick awarded for an unfair challenge on Jack Wilshere by Robert Huth. Mikel Arteta takes the direct free kick.
48:59 Inswinging corner taken by Theo Walcott, Asmir Begovic makes a save.
46:45 Unfair challenge on Mikel Arteta by Peter Crouch results in a free kick. Mikel Arteta takes the free kick.
45:01 The referee gets the second half underway.
45:00+3:23 The referee calls an end to the first half.
40:01 Alex Oxlade-Chamberlain takes a shot. Save made by Asmir Begovic. Corner from the right by-line taken by Jack Wilshere, clearance
made by Steven Nzonzi. Inswinging corner taken right-footed by Theo Walcott from the left by-line, clearance by Peter Crouch.
38:25 Olivier Giroud is caught offside. Asmir Begovic restarts play with the free kick.
34:31 Laurent Koscielny takes a shot. Asmir Begovic makes a save.
33:58 Inswinging corner taken by Theo Walcott from the left by-line, Peter Crouch manages to make a clearance.
30:39 Corner taken by Jack Wilshere from the right by-line, Alex Oxlade-Chamberlain takes a shot. Save by Asmir Begovic. Inswinging
corner taken by Theo Walcott, Peter Crouch makes a clearance.
29:36 Unfair challenge on Olivier Giroud by Ryan Shawcross results in a free kick. Free kick taken by Mikel Arteta.
29:04 Effort on goal by Ryan Shawcross from just outside the area goes harmlessly over the target.
25:37 Theo Walcott takes a shot. Blocked by Andy Wilkinson. Foul by Mikel Arteta on Geoff Cameron, free kick awarded. Free kick
taken by Asmir Begovic.
22:35 Corner from the right by-line taken by Jack Wilshere, save made by Asmir Begovic.
21:50 Shot from just outside the box by Glenn Whelan goes over the bar.
20:51 Alex Oxlade-Chamberlain takes a shot. Ryan Shawcross gets a block in. Olivier Giroud is caught offside. Asmir Begovic takes
the free kick.
17:04 Headed effort from the edge of the area by Ryan Shawcross goes wide of the right-hand post. Free kick awarded for an unfair
challenge on Theo Walcott by Andy Wilkinson. Jack Wilshere crosses the ball from the free kick left-footed from right wing,
Robert Huth manages to make a clearance.
16:33 Peter Crouch takes a shot. Laurent Koscielny gets a block in. Inswinging corner taken by Matthew Etherington.
14:38 Olivier Giroud produces a headed effort from deep inside the six-yard box which goes wide of the right-hand upright.
13:49 Jonathan Walters takes a shot. Wojciech Szczesny makes a save.
12:29 Free kick awarded for an unfair challenge on Theo Walcott by Matthew Etherington. Bacary Sagna takes the free kick.
6:15 Corner from the right by-line taken by Jack Wilshere, Geoff Cameron manages to make a clearance. Inswinging corner taken left-footed
by Jack Wilshere played to the near post, Glenn Whelan manages to make a clearance.
4:57 Jack Wilshere takes a shot from inside the box clearing the bar.
1:57 Effort from the edge of the area by Alex Oxlade-Chamberlain goes wide of the left-hand upright.
1:06 Free kick awarded for an unfair challenge on Jack Wilshere by Geoff Cameron. Mikel Arteta restarts play with the free kick.
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.