A defeat in the capital for the Reds as second half fightback doesn't prove enough at The Valley.
Gerhard Struber had brought back Sami Radlinger in goal and handed Michael Sollbauer his first Sky Bet Championship start as the Reds met their relegation rivals.
There was a break inside the opening five minutes for Barnsley as Jacob Brown capitalised on a defensive mistake on halfway, and he fed the onrushing Luke Thomas who broke into the box but was checked by Jason Pearce only for the referee not to award anything.
Thomas was bleeding and had to receive treatment and a new shirt during a two-minute stoppage.
After the referee saw an infringement in the Reds' defensive third, about 40 yards from goal, Charlton clipped in a delicate free-kick that was flicked on towards the six yard box and Lyle Taylor was there all alone to toe-poke into the net for the lead.
In what was a massively scrappy contest, stop-start for the most part, the Reds did break forward again through Thomas and Aapo Halme through midfield but Alex Mowatt's rasping drive was always clearing the crossbar.
Barnsley went very close on 21 minutes as an outswinging Clarke Oduor free-kick was met by Mads Andersen eight yards out, his header tipped away last-second by Dillion Phillips in the hosts' goal, with Halme firing the rebound against the outside of the post.
After a number of fouls from Sollbauer, he was booked by referee John Brooks, and was soon given a final warning after pulling back Taylor on the edge of the box. The resulting free-kick was saved comfortablly low down by Radlinger.
Andersen joined his centre back partner in the notebook for what looked a 50/50 challenge, before Thomas broke on the counter again and played a great cross-field ball towards Brown but his layoff was blasted over the bar by Halme.
To cap off a disaster of a first half, in the third minute of stoppage time, the home side doubled their lead and again it came from a cross that wasn't dealt with; Andre Green blasted home through a sea of bodies, 10 yards out.
HALF TIME: Charlton 2-0 Barnsley
Barnsley battled in vain to get back into the fixture with a 30-yard Andersen rocket only parried by Phillips but the ball fell for Cauley Woodrow just inside the box and his effort cannoned back off the bar!
The home side removed both Jonny Williams and Taylor just after the hour and after Struber brought on both Elliot Simoes and Kilian Ludewig, altering the shape slightly, Barnsley took real charge of the match.
On 71 minutes a lifeline arrived. Woodrow crashing home a shot from just inside the box after a great Thomas counter and through-pass.
Two minutes later, the Reds hit the woodwork yet again as Brown was denied inside the box before Ludewig's goal-bound drive was hooked off the line!
It was all Barnsley at this point as they searched for an equaliser their second half display merited.
There was a Brown effort that fizzed over before Patrick Schmidt replaced Conor Chaplin as Struber had one last throw of the dice.
But despite incessant Reds pressure and six minutes of stoppage time getting added, the leveller never came and the gap to safety grew to seven points with 16 games to play.
FULL TIME: Charlton 2-1 Barnsley
Radlinger, J.Williams (Ludewig), Andersen, Sollbauer, Oduor (Simoes), Halme, Mowatt, Thomas, Woodrow, Chaplin (Schmidt), Brown.
Unused: Walton, B.Williams, Dougall, Styles.