Town's rollercoaster season continued as Roy Keane's side went down to a fourth home defeat of the campaign.
Blues had chances, Tamas Priskin twice denied by Luke Steele but the Tykes threatened continually on the counter attack and had a two goal advantage at the break courtesy of goals from Goran Lovre and own goal from Marton Fulop after Alex Hammill's shot had hit the post.
Mark Robins' side added a third early in the second-half with Garry O'Connor converting from close range.
Tommy Smith gave Town a lifeline with his third goal of the season, heading in from Carlos Edwards' corner 10 minutes from time but it was too little too late.
Town made three changes to the side that lost to Derby in midweek with Jason Scotland, Andros Townsend and Mark Kennedy coming into the starting line-up.
Kennedy, making his first appearance in a month after recovering from a hamstring problem, was handed the skipper's armband.
Jack Colback picked up a yellow card inside the first minute for a foul on Hammill, Kennedy then using all his experience to stop the Tykes' dangerman as he led a three on one breakaway.
Priskin forced Steele into a terrific save with an equally terrific volley from the angle, Smith sending a header wide from the corner.
Nathan Doyle was booked for a foul on Townsend before the Tykes opened the scoring on 21 minutes, Lovre's expert finish beating Fulop after Jim O'Brien had pulled the ball back in the box.
Barnsley almost made it two a minute later, O'Connor nudging the ball past the post after in-decision in the Town defence.
The Tykes did make it two midway through the half though, Hammill beating Fulop with a 25 yard strike, the ball coming back off the post and hitting the 'keeper before rolling over the line.
Priskin, who carried the main threat for Town, almost grabbed a reply after Colback and Andros Townsend had linked up well, Steele making the save.
Steele saved again from Townsend, then Priskin sent a left foot curler just wide.
Fulop beat out Hugh Colace's close range shot before Jason Shackell was booked for a foul on Priskin.
The Hungary international had the ball in the net seconds before the half-time whistle but not before the offside flag was raised.
Town made two changes at the break, Luke Hyam and Ronan Murray on for Scotland and Townsend.
Barnsley only needed five minutes of the second-half to virtually wrap up the points though, O'Connor getting in front of Smith to convert Lovre's cross.
Jake Livermore evened up the bookings for a foul on Doyle, Priskin then making way for Connor Wickham on the hour.
Murray was crowded out inside the Barnsley box, Wickham then flashed the ball across goal as Town searched for way back into the game.
Paul Hayes replaced Lovre on 70 minutes in Barnsley's first change and 10 minutes later Blues were handed a lifeline when Smith headed in from Edwards' corner.
Fulop held firm from Hammill's 25 yard drive while at the other end, Livermore couldn't force Murray's cross in at the near post.
Jacob Butterfield replaced Hammill at the start of added on time as the Tykes eased their way to the points, the Town fans showing their frustration at the final whistle. Such is the Championship though that Blues remain only two points off the Play-Offs.
Town: Fulop, Eastman, Smith, Delaney, Kennedy, Edwards, Colback, Livermore, Townsend (Murray 46), Priskin (Wickham 60), Scotland (Hyam 46). Subs not used: Murphy, Peters, Brown, O'Dea. Booked: Colback, Livermore.
Barnsley: Steele, Trippier, Shackell, Foster, Hassell, O'Brien, Colace, Doyle, Hammill (Butterfield 90) Lovre (Hayes 70), O'Connor. Subs not used: Preece, Neumann, Arismendi, Gray, Wood. Booked: Doyle, Shackell, Colace.