Arsenal's hopes of closing on the Premier League top four were dented by stylish Swansea City in an enthralling match at the Liberty Stadium.
The Gunners took an early lead with a well-taken Robin van Persie goal, but the visitors were outplayed at times.
Scott Sinclair converted a penalty after Aaron Ramsey's foul before Nathan Dyer clipped the Swans in front.
Theo Walcott dinked over Michel Vorm to level but, less than a minute later, Danny Graham slotted home the winner.
The victory, Swansea's first over Arsenal since February 1982, elevates Brendan Rodgers' side into the top 10, but will leave counterpart Arsene Wenger musing on a third defeat in the Gunners' last four Premier League away matches.
Wenger was reportedly unhappy at the state of the Liberty Stadium pitch, where rugby union side Ospreys also play their home games, but Swansea proved that a passing style could thrive on the surface as they deprived Arsenal of possession for long periods.
Initially, Wenger's players seemed to have put their manager's concerns at ease.
Walcott could have done better with an early chance, before Alex Song's neat lay-off gave Andrey Arshavin space in front of the Swansea rearguard.
Van Persie then took his cue to drift into space and, from Arshavin's precise pass, he advanced on goal and held off the attentions of Steven Caulker to fire past Vorm.
But Swansea wasted no time in forcing their way back to parity as wide men Nathan Dyer and Scott Sinclair attacked their respective full-backs - the youthful Ignasi Miquel and the out-of-position Johan Djourou.
DID YOU KNOW?
Only West Brom have lost as many Premier League matches from winning positions as Arsenal this season
Wojciech Szczesny had to be on his toes to get to a through ball ahead of Dyer before Ramsey conceded a spot-kick, hanging out a leg as the former Southampton player dragged the ball away from him in the box.
Arsenal appeared unfortunate to be penalised but Sinclair coolly dispatched the penalty into the bottom right-hand corner.
Ramsey, whose days playing for Cardiff ensured jeering throughout by the home fans, almost made immediate amends, but Caulker hacked clear after the Arsenal man had guided a loose ball round a sprawling Vorm.
Caulker's then header required a rushed clearance as it threatened to drift into the far corner before Dyer cut inside to warm Szczesny's palms.
Swansea's determination to stick to their manager's philosophy of passing football almost saw them come unstuck, Vorm coming to their rescue after Van Persie had time and space but lacked a finish.
With Leon Britton and Joe Allen to the fore, Swansea's neat passing was soon picking patterns around the Arsenal midfield after the break.
Allen showed he could also put his foot in as he robbed Ramsey and, with Miquel well out of position, played in Dyer who clipped the ball into the far corner to put his side ahead for the first time.
Wenger was prompted to call on club legend Thierry Henry from the bench, but it was Walcott showed the sort of composure that the Frenchman is famed for when he raced clear to level.
But, less than a minute later, substitute Gylfi Sigurdsson's pass down the outside of Laurent Koscielny took the French defender out of the game and Graham fired across Szczesny into the far corner as the goalkeeper dithered.
Graham then found himself in a similar position only to see his cross to Angel Rangel cut out. But, although Arsenal grew more threatening in attack late on, a header from Ramsey and a long-range effort from Tomas Rosicky, neither of which stretched Vorm, were as close as they came.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +2:22
Angel Rangel restarts play with the free kick.90:00 +2:22 Substitution
Substitution Leroy Lita comes on in place of Danny Graham.90:00 +2:22
Foul by Laurent Koscielny on Gylfi Sigurdsson, free kick awarded.89:39
Theo Walcott fouled by Neil Taylor, the ref awards a free kick. The free kick is delivered left-footed by Robin van Persie from right channel, Neil Taylor makes a clearance.88:28
Laurent Koscielny takes a shot. Michel Vorm makes a save.88:15
Tomas Rosicky takes a shot. Save by Michel Vorm.86:36
The ball is crossed by Alex Oxlade-Chamberlain, Effort on goal by Tomas Rosicky from deep inside the area goes harmlessly over the bar.82:34
Theo Walcott sends in a cross, Aaron Ramsey takes a shot. Save by Michel Vorm.82:18
The ball is delivered by Theo Walcott, clearance by Gylfi Sigurdsson.80:41
Free kick taken by Alex Song.80:41 Substitution
Substitution Wayne Routledge comes on in place of Nathan Dyer.80:41
The referee blows for offside against Scott Sinclair.78:24
Unfair challenge on Danny Graham by Thierry Henry results in a free kick. Angel Rangel takes the free kick.77:38
The ball is swung over by Alex Oxlade-Chamberlain, save by Michel Vorm.76:32 Substitution
Substitution Alex Oxlade-Chamberlain on for Per Mertesacker.75:46
Per Mertesacker gives away a free kick for an unfair challenge on Danny Graham. Michel Vorm restarts play with the free kick.75:41
Robin van Persie produces a cross, clearance by Neil Taylor.74:54
Corner taken left-footed by Robin van Persie, save by Michel Vorm.74:14
Free kick awarded for a foul by Angel Rangel on Robin van Persie. Ignasi Miquel takes the direct free kick.
Centre by Ignasi Miquel. The referee blows for offside. Free kick taken by Michel Vorm.73:13
Theo Walcott takes a shot. Blocked by Neil Taylor.72:51
Free kick awarded for a foul by Neil Taylor on Theo Walcott. Per Mertesacker takes the indirect free kick.72:39
Nathan Dyer is ruled offside. Free kick taken by Laurent Koscielny.71:15
Corner from the right by-line taken by Robin van Persie, Close range effort by Per Mertesacker misses to the left of the goal.71:09
Robin van Persie crosses the ball, clearance made by Ashley Williams.70:19
Gylfi Sigurdsson gives away a free kick for an unfair challenge on Per Mertesacker. Wojciech Szczesny takes the free kick.69:03
Assist on the goal came from Gylfi Sigurdsson.69:03 Goal scored
Goal! - Danny Graham - Swansea 3 - 2 Arsenal Danny Graham finds the net with a goal from inside the penalty box to the bottom left corner of the goal. Swansea 3-2 Arsenal.68:18
Assist by Johan Djourou.68:18 Goal scored
Goal! - Theo Walcott - Swansea 2 - 2 Arsenal Theo Walcott gets on the score sheet with a goal from just inside the area to the bottom left corner of the goal. Swansea 2-2 Arsenal.64:29
Tomas Rosicky has shot on goal from just outside the box which goes wide of the right-hand upright.62:47
Gylfi Sigurdsson produces a left-footed shot from the edge of the box and misses to the right of the goal.62:05 Substitution
Substitution Tomas Rosicky is brought on as a substitute for Yossi Benayoun.62:05 Substitution
Substitution Andrey Arshavin goes off and Thierry Henry comes on.61:38
Outswinging corner taken by Gylfi Sigurdsson, Robin van Persie manages to make a clearance.61:00
Outswinging corner taken right-footed by Gylfi Sigurdsson played to the near post, Alex Song makes a clearance.59:14
Outswinging corner taken by Gylfi Sigurdsson from the right by-line, clearance made by Per Mertesacker.59:09
The ball is delivered by Gylfi Sigurdsson, clearance made by Johan Djourou.56:58
Assist by Joe Allen.56:58 Goal scored
Goal! - Nathan Dyer - Swansea 2 - 1 Arsenal Goal scored by Nathan Dyer from inside the penalty box to the bottom left corner of the goal. Swansea 2-1 Arsenal.53:55
Gylfi Sigurdsson takes the outswinging corner, clearance by Yossi Benayoun.52:47
Joe Allen has shot on goal from just outside the box which goes wide of the right-hand upright.51:00
Laurent Koscielny fouled by Nathan Dyer, the ref awards a free kick. Free kick taken by Yossi Benayoun.49:47
Nathan Dyer has an effort at goal from just outside the box which goes wide of the right-hand upright.49:15
Outswinging corner taken right-footed by Gylfi Sigurdsson from the right by-line.49:10
The ball is crossed by Nathan Dyer, clearance made by Laurent Koscielny.47:51
Corner from the right by-line taken by Gylfi Sigurdsson, clearance made by Robin van Persie.47:03
Effort on goal by Andrey Arshavin from just inside the penalty area goes over the target.46:54
Theo Walcott crosses the ball, blocked by Neil Taylor.46:31
A cross is delivered by Ignasi Miquel.45:13
Shot from deep inside the area by Theo Walcott clears the crossbar.45:01
The second half has started.45:01 Substitution
Substitution Gylfi Sigurdsson on for Kemy Agustien.45:00 +2:15 Half time
Half Time The ref blows to signal half-time.44:03
Leon Britton challenges Ignasi Miquel unfairly and gives away a free kick. The ball is delivered by Andrey Arshavin, Theo Walcott takes a shot. Save by Michel Vorm.41:47
The assistant referee signals for offside against Robin van Persie. Michel Vorm takes the indirect free kick.41:17
Andrey Arshavin takes a shot. Angel Rangel gets a block in.40:19
The ball is sent over by Andrey Arshavin, Steven Caulker manages to make a clearance.39:48
Nathan Dyer takes a shot. Wojciech Szczesny makes a save.35:49
The assistant referee flags for offside against Ignasi Miquel. Michel Vorm takes the free kick.35:08
Joe Allen delivers the ball, clearance made by Laurent Koscielny.34:24
Angel Rangel produces a cross, clearance by Laurent Koscielny.31:30
The referee blows for offside against Scott Sinclair. Wojciech Szczesny takes the indirect free kick.31:23
Kemy Agustien sends in a cross, clearance by Ignasi Miquel.30:43
Free kick awarded for a foul by Robin van Persie on Joe Allen. Joe Allen sends in a cross, Steven Caulker takes a shot. Robin van Persie makes a clearance.29:59
Outswinging corner taken from the right by-line by Joe Allen, clearance by Laurent Koscielny.28:52
Theo Walcott sends in a cross, Steven Caulker manages to make a clearance.28:40
Robin van Persie takes a shot. Save made by Michel Vorm.27:46
The referee blows for offside. Indirect free kick taken by Leon Britton.25:44
Kemy Agustien concedes a free kick for a foul on Aaron Ramsey. Indirect free kick taken by Wojciech Szczesny.25:08
The ball is sent over by Neil Taylor, blocked by Andrey Arshavin.24:20
The ball is crossed by Scott Sinclair.23:49
Leon Britton decides to take a short corner.23:40
The ball is sent over by Neil Taylor, clearance by Per Mertesacker.23:24
The ball is sent over by Steven Caulker, Per Mertesacker manages to make a clearance.23:04
Angel Rangel sends in a cross, Per Mertesacker makes a clearance.22:00
Alex Song gives away a free kick for an unfair challenge on Joe Allen. Steven Caulker takes the free kick.21:13
Ignasi Miquel sends in a cross. The ball is delivered by Theo Walcott, Ashley Williams makes a clearance.19:43
Foul by Andrey Arshavin on Angel Rangel, free kick awarded. Indirect free kick taken by Angel Rangel.19:22
Angel Rangel produces a cross, Alex Song gets a block in.18:39
Corner taken by Joe Allen, Johan Djourou makes a clearance.18:01
Aaron Ramsey handles the ball and concedes a free kick. Kemy Agustien shoots direct from the free kick.17:22
A cross is delivered by Aaron Ramsey, Michel Vorm makes a save.15:55
Assist on the goal came from Nathan Dyer.15:55 Goal scored
Goal! - Scott Sinclair - Swansea 1 - 1 Arsenal Scott Sinclair scores a placed penalty. Swansea 1-1 Arsenal.15:02
The ball is sent over by Joe Allen, Penalty awarded for a foul by Aaron Ramsey on Nathan Dyer.13:21
Yossi Benayoun is penalised for handball and concedes a free kick. Free kick crossed right-footed by Joe Allen.12:32
Neil Taylor fouled by Theo Walcott, the ref awards a free kick. Indirect free kick taken by Neil Taylor.11:37
Aaron Ramsey concedes a free kick for a foul on Leon Britton. Leon Britton takes the free kick.8:35
Free kick awarded for an unfair challenge on Per Mertesacker by Danny Graham. Wojciech Szczesny takes the free kick.6:45
Danny Graham is caught offside. Indirect free kick taken by Wojciech Szczesny.5:34
Kemy Agustien gives away a free kick for an unfair challenge on Aaron Ramsey. Free kick crossed by Robin van Persie.4:01
Assist on the goal came from Andrey Arshavin.4:01 Goal scored
Goal! - Robin van Persie - Swansea 0 - 1 Arsenal Robin van Persie finds the back of the net with a goal from inside the box low into the middle of the goal. Swansea 0-1 Arsenal.0:40
Kemy Agustien has shot on goal from just outside the box which goes wide of the right-hand upright.0:00
The match begins.
Live data and text provided by our data suppliers