A defensive howler from Dennis Souza handed 10-man Reading their second victory of the week and helped them keep pace with the league's top two.
The crucial goal came on 64 minutes when Souza hit an attempted back-pass straight to Kevin Doyle, who squared for Brynjar Gunnarsson to slide home.
It was a deserved winner for the Royals, who had Jimmy Kebe sent off on 35 minutes after a clash with Souza.
Home keeper Heinze Muller kept the score respectable with some fine saves.
Barnsley manager Simon Davey:
"It's very disappointing. We couldn't break them down but credit to Reading because we gave them a chance to score and they took it.
"We now have to go to two difficult places in Swansea and Wolves and try and pick up points."
On striker Iain Hume, who attended his first game since suffering a fractured skull a month ago.
"He's got plenty of stages to go but it's nice to see him back and it was a shame we couldn't get a win for him."
Reading manager Steve Coppell:
"We've been fortunate. We went down to 10 men in our last away game and we can't keep doing that.
"With the sending-off, the centre-half tried to claim some ground and my player responded by pushing him away so it was a nothing situation. That's no defence because you can't raise your hands but we know what we think and we'll keep our thoughts to ourselves."
The kick-off was delayed after Reading's coach broke down on the way to Oakwell.
"The bus started spewing out smoke and we were stranded. Barnsley were fine about putting the kick-off back and we thank them for that."
Barnsley: Muller, Hassell, Foster, Guedes, Van Homoet (El Haimour 78), Campbell-Ryce, Colace, De Silva, Whaley (Odejayi 67), Macken (Rigters 87), Cureton. Subs Not Used: Mostto, Coulson.
Bookmark with:
What are these?