Arsenal took a lead in the second half but couldn't hold it, or hold on for a draw.
Arsene Wenger's side had come in for criticism for surrendering a three-goal advantage to draw 3-3 with Anderlecht in the UEFA Champions League on Tuesday and the team was at it again on Sunday.
In-form forward Alexis Sanchez's seventh goal in his last six games looked to have put the visiting side on course for a third consecutive victory in the top flight, but Swansea struck twice in the space of three minutes to secure the points.
Gylfi Sigurdsson levelled 15 minutes from time with a sublime free kick and Bafetimbi Gomis scored his first Premier League just two minutes after coming on to stun Arsenal in the driving Welsh rain.
Victory for Swansea was only the club's second in eight Premier League outings and moved it above Arsenal into fifth, with Wenger's men slipping a place back heading into the international break.
Tottenham loanee Tom Carroll replaced the suspended Jonjo Shelvey in Swansea's midfield with the returning Leon Britton on the bench to enhance Garry Monk's options, while Kyle Bartley and Marvin Emnes replaced the injured Federico Fernandez and Wayne Routledge.
Arsenal midfielder Mikel Arteta was ruled out due to a hamstring injury, so Mathieu Flamini came into the starting lineup.
The visiting side was accused of being naive for the manner in which it allowed Anderlecht to fight back on Tuesday and made a cautious start.
Calum Chambers was in the thick of the action, with Wilfried Bony going down in the penalty area claiming the England defender had pushed him in the back after 20 minutes but referee Phil Dowd saw nothing amiss.
Jefferson Montero's pace was causing right back Chambers problems and the Ecuador winger forced a save from Szczesny at his near post and the Arsenal goalkeeper was called into action again to deny Emnes after Bony had picked the former Middlesbrough man out.
Lukasz Fabianski was finally called into action a minute before the break against his former club to save Danny Welbeck's strike after the England international had played a one-two with Alex Oxlade-Chamberlain as Arsenal finished the first half strongly.
Oxlade-Chamberlain had a chance of his own just after the break when Alexis played him in, but the midfielder got the ball stuck under his feet before his scuffed shot was easily saved by Fabianski, who was up to the test to deny Santi Cazorla's shot that skidded off the wet surface as rain lashed down.
It came as no surprise when the London club the lead 64 minutes in. Alexis was on hand to apply a simple finish after Welbeck had raced down the right and squared the ball to the red-hot Chile forward.
Swansea came roaring back, though, and Sigurdsson gave Szczesny no chance with a moment of class 15 minutes from time as his long-range free kick found the back of the net.
Worse was to come for Arsenal, with Gomis rising to head home Montero's cross soon after he replaced Bony to stun the Gunners.
Arsenal had a shout for a penalty when it felt Neil Taylor had handled in stoppage time, but referee Dowd waved play on as the visiting side suffered only its second top-flight defeat of the season.