The Swans came from behind to beat Arsenal 3-1 to climb out of the relegation zone on goal difference.
A second consecutive home win, following on from victory over Liverpool, came in a thrilling encounter.
After Nacho Monreal had given Arsenal the lead in the 33rd minute, the Swans were on level terms within 60 seconds.
The equaliser came from Sam Clucas, who scored in the home defeat at Arsenal in October, with the midfielder latching on to Alfie Mawson's through ball before curling past Petr Cech.
The Swans got their noses in front through the excellent Jordan Ayew as he capitalised on a huge mistake by Cech - who miskicked straight to the striker - and tapped in for his fifth goal in ten games.
Carlos Carvalhal's side were not done there, though, with Clucas adding another in the 86th minute following a fine and cross by Ayew.
Victory moved the Swans into 17th - above Stoke on goal difference.
Swans: Lukasz Fabianski, Kyle Naughton, Mike van der Hoorn, Federico Fernandez (capt), Alfie Mawson, Martin Olsson, Nathan Dyer (Tom Carroll, 83), Leroy Fer, Ki Sung-Yueng, Sam Clucas (Wayne Routledge, 90), Jordan Ayew (Wilfried Bony, 87).
Subs not used: Kristoffer Nordfeldt, Kyle Bartley, Luciano Narsingh, Tammy Abraham.
Arsenal: Petr Cech, Hector Bellerin, Shkodran Mustafi, Laurent Koscielny (capt), Nacho Monreal, Mohamed Elneny (Henrikh Mkhitaryan, 60), Aaron Ramsey, Granit Xhaka, Alex Iwobi (Olivier Giroud, 76), Mesut Ozil, Alexandre Lacazette.
Subs not used: David Ospina, Calum Chambers, Ainsley Maitland-Niles, Sead Kolasinac, Eddie Nketiah.