Bafetimbi Gomis, on as a substitute for Wilfried Bony, made an immediate impact to power in Jefferson Montero’s cross for his first Premier League goal to earn the home side the points.
The Swans had trailed to Alexis Sanchez’s 63rd minute effort but got back on terms thanks to a fabulous Gylfi Sigurdsson free-kick before Gomis got the winner just 90 seconds after coming on.
It was another collapse from Arsene Wenger’s men, coming just five days after their Champions League setback against Anderlecht when they led 3-0 only to be pulled back to 3-3 at the Emirates Stadium.
Wenger made only one change after the Anderlecht draw and that was enforced as Mikel Arteta dropped out with a hamstring injury and Mathieu Flamini adopted the holding role in midfield.
Swansea were forced to hand first league starts of the season to central defender Kyle Bartley and wideman Marvin Emnes with Federico Fernandez and Wayne Routledge injured, while on-loan Tottenham midfielder Tom Carroll came in for the suspended Jonjo Shelvey.
But there was no sign of unfamiliarity in Swansea’s play as they started well and Sigurdsson sent over a dangerous free-kick which was headed clear at the far post by Calum Chambers.
Sanchez almost got a shot away under pressure but the Chilean, with five goals in his last three appearances, was crowded out and was kept on a tight leash until the closing moments of the first half.
Swansea had the greater attacking edge and they had strong claims for a penalty when Chambers, who was having a difficult afternoon up against the fleet-footed Montero, bundled into the back of Bony as Emnes’ cross came over.
It was a clumsy challenge by the young right-back but referee Phil Dowd was unmoved and waved play on, Montero immediately forcing Wojciech Szczesny to tip his shot around the post.
The Montero/Neil Taylor axis was working well down Swansea’s left and the pair created another opportunity, with the latter crossing into the Arsenal penalty area where Nacho Monreal was on hand to block Angel Rangel’s drive.
Sigurdsson also saw his shot blocked after strong play from Bony but Swansea’s best chance of the half arrived after 36 minutes when Chambers stumbled and the hosts launched a swift counter-attack.
Montero found Bony, who put Emnes into space on the left but the Dutchman’s firm effort was straight at Szczesny.
Alex Oxlade-Chamberlain had posed problems down Swansea’s left with both Taylor and Ki Sung-yueng picking up bookings for fouls on him, but Arsenal had been toothless in attack until the final five minutes of the half.
First Lukasz Fabianski saved well against his old club to deny Danny Welbeck at the near post, and then Aaron Ramsey struck a dropping ball superbly on the volley to go tantalisingly close.
And deep into first-half stoppage time the unmarked Per Mertesacker met Santi Cazorla’s corner from 10 yards but sent his header wide of Fabianski’s far post.
Arsenal started the second half as they finished the first with their midfield on top, Sanchez increasingly involved and Oxlade-Chamberlain a constant threat.
Strong running from Oxlade-Chamberlain set up Welbeck down the right but he chose to try and find a team-mate rather than shoot from a narrow angle and the chance was lost.
Fabianski did well to hold on to Cazorla’s deflected shot as the heavens opened but Arsenal’s pressure finally told after 63 minutes.
Oxlade-Chamberlain was the predictable provider as he surged through the middle, Cazorla helped it on to Welbeck down the left and he teed it up for Sanchez in front of goal.
Bony spurned an equaliser when he scuffed Montero’s cross but Swansea were level 15 minutes from time when Kieran Gibbs illegally ended the run of pacy substitute Modou Barrow.
Sigurdsson stepped up to take the 25-yard free-kick and he sent it over the wall and away from the reach of Szczesny for his first league goal since the opening day win at Manchester United.
Gomis was sent on and the Frenchman rose above Monreal from Montero’s cross to head past Szczesny and take Swansea above Arsenal into the top five.