However, goalkeeper Tom Heaton was arguably the hero for the home side after he saved Dusan Tadic’s penalty on the hour mark.
Burnley went on to capitalise with 17 minutes to go as a defensive horror show from Southampton, who are on a run of four straight league defeats, allowed Barnes to ghost in unmarked and the 25-year-old’s deflected shot beat Fraser Forster at his near post.
Sean Dyche’s men worked tirelessly to hold on to their advantage in the closing stages and it was to be their day as they picked up their first Premier League win in December to move one point clear of the relegation zone.
Dyche resisted the temptation to make unnecessary changes after his side lost to relegation rivals QPR last Saturday and the move paid dividends as Burnley looked to make amends right from the first whistle.
Danny Ings was clearly fired up for the clash against his former club and saw an early sight of goal after good work from George Boyd down the Burnley right, but the England Under-21 striker could not direct his header on target.
Just minutes later, the 22-year-old was driving at the heart of the visitors’ defence again and this time he had Forster scrambling, but his powerful drive crept inches past the post.
Burnley were starting to pile on the pressure and were having plenty of joy down the right as Kieran Trippier sent in two dangerous crosses which Jose Fonte and Nathaniel Clyne had to deal with.
Midway through the first half, Southampton started to find their passing range, but James Hesketh, on his first senior start, and Ryan Bertrand could not trouble Heaton in the Burnley goal.
The visitors were forced into a change when Hesketh could not shake of a knock after a challenge from Michael Keane, but substitute James Ward-Prowse nearly made an immediate impact with a 25-yard shot, but Heaton was once again up to the challenge.
After the break, Burnley started the brighter of the two sides. Trippier continued to cause the Saints’ back four plenty of problems with his crossing ability and Scott Arfield was the beneficiary as he climbed highest at the far post, but his header bounced of Clyne and away from danger.
But it was Southampton who responded and produced their best moment of the match as Tadic and Graziano Pelle combined to release Sadio Mane just inside the penalty area, but the Senagalese winger failed to hit the target.
The pressure was starting to build on the home side and they appeared to buckle when Boyd brought down Ryan Bertrand in the penalty area.
Clattenburg had no hesitation in pointing to the spot and up stepped Tadic, but Heaton, who saved two of the six penalties he faced last season, was up to the task, diving low to his left to tip the shot round the post.
The save spurred Burnley back into life as Ings tested Forster with a stinging drive from long range, but it was to be a mistake from Clyne that proved to be Ronald Koeman’s side’s undoing.
In the 73rd minute, the England full-back lost possession deep in his own half, with the ball falling into the path of Barnes, whose deflected shot was enough to beat Forster at his near post.
Southampton pushed forward for an equaliser right to the final whistle but Burnley’s work rate never dropped, with Ings and Barnes putting the visitors under constant pressure.
Koeman threw on Shane Long with just over 10 minutes remaining. Fonte had the best chance from Ward-Prowse’s free-kick, but his header was directed straight at Heaton.
Southampton’s final chance came in the dying seconds through Victor Wanyama, but the midfielder could not direct his free header on target as Burnley moved up to 17th in the table with their third win of the season.
Burnley: Heaton (8), Trippier (7), Keane (7), Shackell (7), Mee (6,), Boyd (7), Marney (6), Jones (6), Arfield (6), Barnes (7), Ings (7).
Used subs: Lafferty (6).
Southampton: Forster (6), Clyne (5), Fonte (6), Alderweirald (6), Bertrand (6), Wanyama (5), Davis (6), Hesketh (5), Tadic (5), Mane (4), Pelle (5).
Used subs: Ward-Prowse (6), Long (5).
Man of the match: Tom Heaton.