Yan Dhanda fired the Swans back into the play-off places with a first-half winner against Charlton at the Liberty Stadium.
The Swans dominated the opening 45 minutes but wasted a glut of chances that would have put them home and dry before the break.
But in the end, it was Dhanda’s 14th minute strike which earned the Swans three precious points to push them up into sixth in the Championship.
Swans boss Steve Cooper made six changes to the side that drew 0-0 with Barnsley four days earlier at the Liberty.
Connor Roberts, Mike van der Hoorn, George Byers, Dhanda, Wayne Routledge and Borja Baston all came into the side.
Jake Bidwell, Ben Wilmot, Jay Fulton, Tom Carroll and Bersant Celina drop out of the starting line-up, while Sam Surridge had been recalled by AFC Bournemouth from his loan spell.
Charlton included former Swan Darren Pratley in their side on a day their club takeover was completed by East Street Investments.
Ben Dempsey and Josh Davison also made their full league debuts. The academy graduates were two of five changes as Adam Matthews, Jason Pearce and Lyle Taylor returned in place of Chris Solly, Naby Sarr, Deji Oshilaja, Alfie Doughty and Macauley Bonne.
On a miserable, wet night at the Liberty, it was Dhanda who sparked some sunshine celebrations early on with a superb opener after just 14 minutes.
Routledge laid the ball off to the youngster on the edge of the area. As the crowd urged him to shoot, the midfielder beat his man before curling a fantastic right-footed shot into the bottom corner.
It gave the Swans a huge lift as Borja nearly grabbed a second three minutes earlier when he guided a Roberts cross narrowly wide into the side netting.
Borja had an even better chance in the 21st minute when Byers broke clear before squaring the ball to the unmarked striker 15 yards out, but he blazed over.
The chances were coming thick and fast now as Dhanda fired over after more sloppy play at the back from the visitors.
Charlton settled after that and enjoyed some good possession for a spell before Swansea pressed again in the 32nd minute.
A great through ball from Kyle Naughton sent Routledge clean through. His pull back picked out Andre Ayew who forced a fine save from Dillon Phillips. Roberts picked up the rebound before finding Byers who sent a shot thumping against the post.
Roberts tried his luck himself in the 43rd minute as he curled an effort just over as the Swans finished the half wondering how they were only one goal to the good.
Charlton brought on Alfie Doughty for striker Lyle Taylor at the start of the second half and the youngster nearly grabbed the equaliser in the 52nd minute.
With Swansea claiming offside, Doughty raced clear before firing wide of Freddie Woodman’s far post.
The visitors were competing on an even footing in the early periods as the Swans were forced into their first change in the 58th minute when van der Hoorn limped off to be replaced by Ben Wilmot.
Josh Davison headed just wide in the 62nd minute as the Swans struggled to regain their first-half dominance.
Cooper brought on Celina for goalscorer Dhanda in the 65th minute in a bid to get back on the front foot.
It nearly had the desired effect as Celina did well down the left before the ball eventually broke to Roberts via Grimes and the right-back forced a good save from Phillips with 67 minutes gone.
Chances had dried up though compared to the first half as Swansea just failed to find the killer pass in the final third.
Dhanda’s opening goal though proved enough as the Swans started 2020 with victory.
Swansea City: Freddie Woodman; Connor Roberts, Ben Cabango, Mike van der Hoorn (Ben Wilmot 58), Kyle Naughton; George Byers, Matt Grimes (captain); Andre Ayew, Yan Dhanda, Wayne Routledge; Borja Baston (Jay Fulton 85).
Subs (not used): Kristoffer Nordfeldt, Declan John, Aldo Kalulu, Barrie McKay.
Charlton Athletic: Dillon Phillips, Adam Matthews, Tom Lockyer, Jason Pearce (captain), Darren Pratley, Ben Purrington (Naby Sarr 87); Conor Gallagher, Albi Morgan, Ben Dempsey, Josh Davison, Lyle Taylor (Alfie Doughty 45, repl James Vennings 69).
Subs (not used): Ashley Maynard-Brewer, Deji Oshilaja, Joe Ledley, Chris Solly.
Ref: Peter Bankes