Wayne Routledge's second-half strike proved the difference at the Liberty as the Swans made it two wins from two in the Europa League Group Stage.
They followed up their opening win in Valencia with a hard-fought 1-0 victory against Swiss outfit St Gallen, but they had to dig deep for the points.
The Swans hit the post twice in the first half via Jordi Amat and Michu, but at the other end they had to rely on Gerhard Tremmel as he kept out Goran Karanovic's penalty after 14 minutes as Dwight Tiendalli was penalised for handball.
Michu felt he had a strong claim for a penalty soon after, with the Spaniard having to leave the field for seven stitcheson his head after Stephane Besle's challenge, but the referee waved away the appeal.
After the break, the Swans pushed on for an opening goal and they got it through Routledge - his third in this European campaign - as he poked home from a yard out after Wilfried Bony's shot was parried by keeper Daniel Lopar.
St Gallen pushed for an equaliser, with sub Alhassane Keita going close and fellow replacement Houcine Nater striking the post.
But the Swans held on through four minutes of added on time, with Michael Laudrup's side topping the group on six points with Valencia and St Gallen tied level on three points.
Michael Laudrup made four changes to his starting XI.
Gerhard Tremmel started in goal for the Swans while Leon Britton returned to the starting line-up as captain while Alejandro Pozuelo got the nod out wide and club record signing Wilfried Bony led the line.
SWANS: Gerhard Tremmel, Dwight Tiendalli, Chico Flores, Jordi Amat, Ben Davies, Leon Britton (capt), Jonathan de Guzman, Michu, Alejandro Pozuelo (Jonjo Shelvey, 83), Wayne Routledge (Nathan Dyer, 61), Wilfried Bony (Alvaro Vazquez, 70).
SUBS: Michel Vorm, Neil Taylor, Jose Canas, Roland Lamah.
ST GALLEN: Daniel Lopar, Philippe Montandon (capt, Daniele Russo, 73), Goran Karanovic (Alhassane Keita, ht), Stephane Besle, Matias Vitkieviez, Mario Mutsch, Ivan Martic, Marco Mathys, Ermir Lenjani, Dejan Janjatovic, Roberto Rodriquez (Houcine Nater, 61).
SUBS: Marcel Herzog, Kristian Nushi, Sebastian Wuthrich, Muhamed Demiri.
With both sets of supporters ensuring there was a pulsating atmosphere, both teams made early threats at goal.
First, St Gallen's Roberto Rodriquez sent in a cross along the face of goal which evaded a team-mate before Michu saw his powerful drive collected by keeper Daniel Lopar.
The Spaniard was probing again shortly after, his header just dropping over the crossbar after Jonathan de Guzman's corner found him.
Michu was again part of the action, seeing his shot deflect out off the post after he did well to latch onto Alejandro Pozuelo's ball over the top of the St Gallen defence.
Then, after 14 minutes, came a controversial call.
After Jordi Amat was dispossessed, St Gallen countered and worked its way to Rodriquez, and when his cross hit the arm of Dwight Tiendalli in the box, Portuguese referee Duarte Gomes pointed immediately to the spot.
Up stepped Goran Karanovic, and after making a brief delay in his build-up, his tame shot was saved low down by Gerhard Tremmel.
The visitors failed to be affected though, and Marco Mathys should have given them the lead minutes later as he was put through on goal, but while his attempt beat Tremmel, it skidded past the far post.
The drama continued, and this time it was the Swans' turn to go close.
For the second time in the game they were denied by post as Amat met Ben Davies' free-kick but keeper Lopar got a hand to it and deflected his header onto the woodwork before it was cleared.
It was end-to-end stuff, and the visitors again went close through a counter attack via Mathys, who fired into the sidenetting as the home crowd were still appealing for a penalty at the other end as Stephane Besle's foot appeared to connect with Michu's head after the Spaniard won a header in the St Gallen area.
It left Michu needing treatment on his head, with the midfielder entering the field of play after a few minutes.
The game entered the half-hour mark, and it was frenetic stuff.
Tremmel had to be alert to deal with a bouncing Mathys shot from 20 yards, which the German keeper collected after his initial parry, before Mathys scuffed another effort wide.
Then, in the last act of the half, Michu teed up Wilfried Bony from Ben Davies' crossfield pass, but the striker's right-footed shot flew wide.
Half-time: Swans 0 St Gallen 0
St Gallen boss Jeff Saibene made a change at the break, introducing former Mallorca man Alhassane Keita in place of Karanovic.
But it was the Swans who started the half the brighter and after 52 minutes they were ahead.
Fine work by skipper Leon Britton led to Pozuelo sliding through a pass to Bony inside the box, and when his right-footed shot was parried by Lopar, Wayne Routledge slide in at the far post to score.
It proved Routledge's final act, as he was replaced by Nathan Dyer on the hour while, for the visitors, Houcine Nater came on in place of Rodriguez.
But it was half-time replacement Keita who was pivotal to the next real threat as he latched onto centre-back Besle's long ball, but the striker's lob dropped onto the top netting.
Laudrup made another change, Alvaro Vazquez replacing Bony for the last 20 minutes.
And he made an immediate impact, racing onto Michu's through ball down the left flank before cutting inside and curling a shot just past the far post.
The Swans kept probing, and Dyer went close to doubling their lead as he met Pozuelo's deep cross with a thunderous volley, but that cannoned off the legs of keeper Lopar and out of danger.
St Gallen, though, continued to look dangerous and Nater's powerful 30-yard effort beat Tremmel but not the post as the visitors gave another warning of their intent.
The Swans made their final change in the 83rd minute, Jonjo Shelvey on for the impressive Pozuelo.
The visitors were pushing hard for an equaliser, and it took a last-gasp clearance from Ben Davies to avert the danger as Keita was lurking for a cross.
That was enough for the Swans, though, as they held on for three vital points in the Group Stage.