Jamal Lowe was on the scoresheet again as Swansea City made it seven games unbeaten at the Liberty Stadium to climb to third in the Championship table.
Lowe showed great anticipation to net his fifth goal of the season from close range, and was a menace throughout against a Barnsley side that had headed to SA1 on the back of three straight victories.
The three points were secured when Victor Adeboyejo headed into his own net after the break to give the hosts an ideal early Christmas present, with an 11th clean sheet of the season thrown in for good measure.
Head coach Steve Cooper had made two changes, with Ben Cabango in for rib injury victim Kyle Naughton, and Yan Dhanda replacing Korey Smith in midfield.
The Swans were looking to bounce back from their midweek disappointment at Derby and they made a dream start by opening the scoring after just 72 seconds.
Barnsley failed to clear a free-kick, and Lowe was on the move to get to Cabango’s flick-on and slot the ball beyond Jack Walton in the Tykes’ goal.
The Swans were nearly in again on six minutes as Lowe and Jake Bidwell drove at the defence, but the offside flag stopped the attack in its tracks.
At the other end, Freddie Woodman had to be sharp to save Alex Mowatt’s free-kick, punching the goalbound strike away as it headed for the keeper’s right-hand corner.
That effort started a better period for the visitors, although they did not force Woodman into any further meaningful action initially.
Michael Sollbauer then turned a Clarke Oduor corner just wide as Barnsley continued to press.
But the Swans came close to a second just before the half-hour mark when Dhanda was freed by a quick counter.
He clipped the ball past Walton and was felled, but referee Andy Davies opted for a booking for the keeper’s challenge rather than anything stronger.
Matt Grimes hit the resulting free-kick straight at Walton, before Connor Roberts just failed to connect with a Lowe pull-back after the forward had left his marker for dead.
The Swans led at the break and were on the front foot early in the second half as they looked to extend their advantage.
Walton raced off his line again, this time to just about beat Lowe to Grimes’ through ball, before the Swansea forward again outpaced the defence, only to see his ball run across the face of goal without another white shirt in attendance to finish.
Andre Ayew could not quite get the ball out of his feet in time to finish Marc Guehi’s clever lay-off with the Swans firmly in the ascendancy.
The visitors changed their entire front three as they looked to change the pattern of the contest but it was one of that trio – Abeboyejo – who would put through his own net from a Grimes corner to double Swansea’s advantage with 24 minutes to play.
Bidwell volleyed high and wide at the end of a flowing move, but it made no different to the final outcome as the Swans claimed a comfortable victory.
Swansea City: Freddie Woodman; Ben Cabango, Ryan Bennett, Marc Guehi; Connor Roberts, Jay Fulton, Matt Grimes (captain), Jake Bidwell; Yan Dhanda; Jamal Lowe, Andre Ayew.
Unused Substitutes: Steven Benda, Ryan Manning, Korey Smith, Viktor Gyokeres, Wayne Routledge, Liam Cullen, Joel Latibeaudiere, Oli Cooper, Kasey Palmer.
Barnsley: Jack Walton; Michael Sollbauer, Michal Helik, Mads Andersen; Callum Brittain, Matty James (Romal Palmer 71), Alex Mowatt (captain) (Herbie Kane 82), Clarke Oduor; Conor Chaplin (Luke Thomas 56), Cauley Woodrow (Victor adeboyejo 56), Dominik Frieser (George Miller 57).
Unused Substitutes: Brad Collins, Patrick Schmidt, Jasper Moon.
Referee: Andy Davies