George Byers scored his first senior goal as the Swans claimed a league double over Millwall at the Liberty.
Graham Potter’s side bounced back from the defeat at Bristol City by earning their 12th victory of the season thanks to Byers’ strike.
The 22-year-old fired home into the top corner from inside the box at the second attempt in the 43rd minute.
It proved the difference in a game where the Swans were comfortably on top in the first half but then had to hold off a determined Millwall effort after the break.
Victory moved the Swans onto 44 points from 31 games and up to 11th ahead of Wednesday’s trip to Leeds United.
Potter made three changes to his starting line-up.
Courtney Baker-Richardson started up front as Oli McBurnie was only fit enough for a place on the bench after struggling with illness in the week.
Wingers Daniel James and Wayne Routledge also started after returning to training in the build-up.
The Swans looked the more livelier side in the first half and Byers saw his first-time effort padded wide by Jordan Archer following some neat link-up play from Declan John and Routledge.
The best chance of the game came just before the half hour mark as Matt Grimes’ corner found an unmarked Mike van der Hoorn, but the stand-in skipper headed over the crossbar.
Grimes then saw his 25-yard free-kick tipped wide by Archer before the midfielder’s corner found its way to Byers, and his strike flew into the top corner.
The Lions were livelier after the break, with Erwin Mulder forced into a fine save low down from Mahlon Romeo.
The flying Dutchman was then called into action again before the hour mark as he tipped Jed Wallace’s fine strike over the crossbar.
The Swans huffed and puffed as Celina scuffed wide after Byers and Routledge linked up to give him a sight at goal, while sub Oli McBurnie nodded wide from Byers’ cross.
Celina went within inches of doubling the Swans’ lead as he collected a return pass from Routledge before chipping the onrushing Archer, but sub Shane Ferguson cleared off his line.
A late charge from Millwall saw the Swans endure some late scares, with Jake Cooper nodding a header down in the box but somehow the Lions could only direct that wide from yards out.
The Swans, though, held on for victory.
Swansea City: Erwin Mulder; Connor Roberts, Mike van der Hoorn (captain), Cameron Carter-Vickers, Declan John (Kyle Naughton, 60); Bersant Celina, Matt Grimes; Wayne Routledge (Jay Fulton, 90), George Byers, Daniel James; Courtney Baker-Richardson (Oli McBurnie, 70).
Subs: Kristoffer Nordfeldt, Barrie McKay, Joel Asoro, Nathan Dyer.
Millwall: Jordan Archer, Shaun Hutchinson (captain), Jake Cooper, Shaun Williams (Steve Morison, 74), Jed Wallace, Ben Thompson, Lee Gregory, Mahlon Romeo, Murray Wallace (Shane Ferguson, ht), Ryan Leonard, Ben Marshall (Aiden O'Brien, 84).
Subs: Fred Onyedinma, Alex Pearce, David Martin, Ryan Tunnicliffe.