Report: Swans 2 Bolton 0
Two late goals helped the Swans see off nine-man Bolton 2-0 in a one-sided affair at the Liberty Stadium.
Oli McBurnie, who had seen his first-half penalty saved, struck his 17th goal of the season with nine minutes left before sub Celina rounded off victory in additional time.
Following the penalty save, Bolton's efforts were made even tougher as Craig Noone was dismissed before the break for a second booking.
Then, with 17 minutes left, centre-back David Wheater was shown a red card for a professional foul on Wayne Routledge, who was racing towards goal after intercepting a pass.
Victory moved the Swans up to 13th in the Championship, with 47 points from 34 games.
Routledge and Nathan Dyer started as Declan John and Bersant Celina dropped to the bench.
Routledge featured as a second-half substitute in the defeat at Sheffield Wednesday - scoring the Swans' solitary goal in a 3-1 loss - and made his first start following his return from a calf strain.
Dyer, meanwhile, had a niggling hamstring problem but made his first start since the defeat at Bristol City at the start of February.
Kyle Naughton started at right-back, with Connor Roberts moving over to the left as John missed out.
Naughton was involved in the first foray after three minutes as his cross was cleared to Matt Grimes, but his 20-yard effort was tipped wide.
The lively Daniel James then got in on the act as he was sent hurtling towards goal by McBurnie, but the winger's shot was straight at Remi Matthews.
The Swans continued to push and another chance inside nine minutes saw McBurnie and James link up again but the latter's cross failed to find a white shirt.
The James-McBurnie combination was providing Bolton with plenty of problems, and Matthews again had to spring into action to keep out a decent McBurnie strike.
Bolton, who are now seven points from safety, kept plugging away and Luca Connell saw his low volley padded away by Nordfeldt before the first big talking point of the game arrived after 34 minutes.
Naughton slipped a pass inside the box for Dyer to run onto, and the winger was hauled down by Noone.
Up stepped McBurnie, but Matthews was up to the task as he dived the right way and palmed the effort wide.
It failed to dampen the Swans' efforts on a wet day in SA1, and Graham Potter's side maintained their search for the opener.
Grimes saw a 25-yard free-kick parried while, at the other end, Nordfeldt denied Noone.
It proved Noone's final act as the Bolton midfielder was late into a challenge with McBurnie and referee Gavin Ward had no option but to show him a second yellow card.
That left Bolton a tricky task in the second half, but, to their credit, the Trotters did well to keep the Swans from creating clear-cut chances.
It took a fine reaction from Pawez Olkowski to keep them on level terms as he cleared off his own line after Wheater had directed a James cross towards his own goal.
Then the experienced centre-back was the second Bolton player to be given his marching orders as he hauled down Routledge after he had intercepted a pass and headed for goal.
Potter threw on Celina for the final 20 minutes and he was straight into the action with a shot that was deflected wide.
Then came the moment the Jack Army had waited for.
With 10 minutes left, James' run caused havoc in the Bolton defence and when a clearance looped into the air, sub Courtney Baker-Richardson nodded into the path of McBurnie and he steered home from close range.
With Bolton out on their feet, the Swans wrapped up victory as James raced forward once more and teed up Celina, who took a few touches before finding the top corner from 12 yards.
Swansea City: Kristoffer Nordfeldt; Kyle Naughton, Mike van der Hoorn (captain), Cameron Carter-Vickers, Connor Roberts (Courtney Baker-Richardson, 76); George Byers (Bersant Celina, 69), Matt Grimes; Nathan Dyer (Jay Fulton, 86), Wayne Routledge, Daniel James; Oli McBurnie.
Subs: Erwin Mulder, Cian Harries, Declan John, Barrie McKay.
Bolton Wanderers: Remi Matthews, Mark Beevers, Clayton Donaldson (Jack Hobbs, 76), Sammy Ameobi, Craig Noone, Pawez Olkowski, Callum Connolly, Gary O'Neil, Josh Magennis (Will Buckley, 56), David Wheater (captain), Luca Connell (Luke Murphy, 70).
Subs: Ben Williams, Mark Little, Lloyd Dyer, Joe Pritchard.