Tom Bradshaw scored twice with 15-yard shots either side of the break, after on-loan Adam Armstrong had fired the Tykes ahead with a 25th-minute penalty.
From 2-0 down, Jonathan Kodjia offered hope, scoring from a narrow angle a minute after Bradshaw's first goal.
But Bradshaw's second condemned Villa to a seventh defeat in eight games.
Watched by their lowest league home crowd of the season, Villa are still seven points clear of relegation danger after a defeat inflicted by two strikers who were last season scoring their goals in the Midlands for League One clubs, Armstrong for Coventry City and Bradshaw for Walsall.
Barnsley are ninth, six points shy of a play-off place, after their first victory - and goals - in three games.
Villa had a lot of early first-half possession and created decent openings, with Henri Lansbury going close three times, while Albert Adomah powered a shot just over and former Barnsley captain Conor Hourihane missed a free header.
But, out of the blue, the game changed on 25 minutes when winger Marley Watkins fell heavily under Jordan Amavi's challenge and striker Armstrong, on loan from Newcastle, confidently converted the resulting penalty to Sam Johnstone's right.
Kodjia twice went close for Villa, either side of Barnsley's Liverpool loanee Ryan Kent having a free-kick tipped away for a corner by home goalkeeper Johnstone.
However, on 43 minutes, Barnsley worked a second goal from the right, with Andy Yiadom flicking on for Bradshaw to clip a neat right-foot finish inside Johnstone's right post.
Villa's response was instant, scoring just a minute later when Adomah's low ball from the right made it beyond the far post, where Kodjia turned in coolly from a narrow angle.
But, on 58 minutes, Barnsley made the game safe when Villa failed to clear their lines from a badly-defended free-kick, allowing Bradshaw to drill a low left-foot finish into Johnstone's bottom right corner - only a seventh goal of the season for the summer signing.
Aston Villa boss Steve Bruce told BBC WM:
"It's not good enough. That's for sure. We started off all right for the first 25 minutes and had a few chances but, as has happened over the last four or five weeks, we didn't take them, we make a mistake, we get punished and it goes round in a vicious circle. Confidence drains away, it takes over everything and it ends up being one of those ugly nights.
"We have to go back to the basics of what we were and how we changed things round when we first came in four months ago. We have to cut out the silly mistakes. We handed them two goals.
"The reason why we've got one of the biggest wage bills in the Championship is we've got to deal with the mentality and expectation. That's why they get paid more than anyone else in this division.
"But I'm convinced they are made of the right stuff and can get better, and it's my responsibility to make them better."
Barnsley boss Paul Heckingbottom told BBC Radio Sheffield:
"We had to work really hard for that. There's lots of different ways to win and we showed it all in one game. We were under pressure a lot in the first half but we defended really well.
"We're an aggressive team. We don't play with any fear. We use the fact we're a small group of players, staff and have a small budget as part of our power and what we are.
"This is us, what we're given, and how we're going to excel. What can we do better than everyone else? We don't shy away from what we're short of.
"Tom Bradshaw took his goals well. Both instinctive finishes. He's scored a lot that way, not only with us , but with Walsall. His uncle's a Villa fan. He was looking for him in the crowd to celebrate."
Match ends, Aston Villa 1, Barnsley 3.
Second Half ends, Aston Villa 1, Barnsley 3.
Birkir Bjarnason (Aston Villa) wins a free kick in the defensive half.
Foul by Ryan Williams (Barnsley).
Foul by Leandro Bacuna (Aston Villa).
Adam Hammill (Barnsley) wins a free kick in the defensive half.
Hand ball by Gethin Jones (Barnsley).
Corner,  Aston Villa. Conceded by Angus MacDonald.
Attempt blocked. Leandro Bacuna (Aston Villa) left footed shot from outside the box is blocked.
Jonathan Kodjia (Aston Villa) wins a free kick on the right wing.
Foul by Angus MacDonald (Barnsley).
Attempt missed. Jonathan Kodjia (Aston Villa) right footed shot from the right side of the box is just a bit too high.
Attempt missed. James Chester (Aston Villa) header from the centre of the box misses to the right. Assisted by Andre Green with a cross following a corner.
Corner,  Aston Villa. Conceded by Andy Yiadom.
Substitution, Barnsley. Ryan Williams replaces Ryan Kent.
Attempt missed. Albert Adomah (Aston Villa) right footed shot from the centre of the box is too high following a corner.
Corner,  Aston Villa. Conceded by Andy Yiadom.
Foul by Leandro Bacuna (Aston Villa).
Adam Hammill (Barnsley) wins a free kick on the left wing.
Foul by Birkir Bjarnason (Aston Villa).
Andy Yiadom (Barnsley) wins a free kick in the defensive half.
Attempt missed. Scott Hogan (Aston Villa) right footed shot from the centre of the box misses to the left. Assisted by Leandro Bacuna.
Jordan Amavi (Aston Villa) wins a free kick in the defensive half.
Foul by Ryan Kent (Barnsley).
Foul by Leandro Bacuna (Aston Villa).
Adam Armstrong (Barnsley) wins a free kick in the attacking half.
Substitution, Barnsley. Adam Hammill replaces Tom Bradshaw.
Attempt saved. George Moncur (Barnsley) right footed shot from outside the box is saved in the bottom left corner.
Substitution, Aston Villa. Leandro Bacuna replaces Jack Grealish.
Offside, Aston Villa. Andre Green tries a through ball, but Scott Hogan is caught offside.
Attempt saved. Andre Green (Aston Villa) right footed shot from the left side of the box is saved in the centre of the goal.
Corner,  Aston Villa. Conceded by Gethin Jones.
Delay over. They are ready to continue.
Delay in match Marley Watkins (Barnsley) because of an injury.
Substitution, Aston Villa. Andre Green replaces Henri Lansbury.
Substitution, Aston Villa. Birkir Bjarnason replaces Alan Hutton.
Attempt missed. Jack Grealish (Aston Villa) right footed shot from outside the box is too high. Assisted by Scott Hogan.
Conor Hourihane (Aston Villa) wins a free kick in the defensive half.
Foul by Matthew James (Barnsley).
Hand ball by Conor Hourihane (Aston Villa).
Aston Villa's awful start to 2017 continued as Barnsley sent them to a fourth straight Championship defeat - and second at home in four days.