Barnsley went ahead through a fine finish from captain Stephen Dawson but Reading levelled before half time when Pavel Pogrebnyak converted a needlessly conceded penalty.
But Barnsley hit back with second-half goals from Reuben Noble-Lazarus and Dale Jennings, both excellent long-range efforts, to boost their fight against relegation.
Reading had not won in four successive matches at home and had scored only once in that period – an own goal from Yeovil’s John Lundstram – but had still eked out an undefeated five-game sequence overall, which comprised two wins and three draws.
Barnsley had lost four of their five previous matches and arrived at the Madejski Stadium with the worst away record in the Championship, just seven points from a possible 51.
It was Barnsley who started the better, with Liam Lawrence driving wide from long distance and Dawson forcing a decent save from home goalkeeper Alex McCarthy with a fierce shot.
Maintaining the pressure, it was no surprise when they went ahead in the 16th minute. Chris O’Grady took advantage of a poor back-pass from Chris Gunter and set up Dawson to score with a cleverly placed effort.
Reading had threatened briefly, with Garath McCleary cutting in from the left and being denied only by a brave stop from Barnsley keeper Luke Steele.
But in the 20th minute, they drew level. Skipper Jobi McAnuff released Pogrebnyak and the big Russian striker strode forward until he was carelessly fouled by Kelvin Etuhu in the area. Pogrebnyak coolly slotted in the spot kick for his tenth goal of the season.
Reading upped the pace before half time, with Jordan Obita and McAnuff going close but Barnsley almost regained their lead when O’Grady blazed wide from a good opening.
Barnsley kept up their momentum after the break, with Tomasz Cywka forcing McCarthy into an unconvincing, scrambling save.
Dawson then sliced an effort wide before Barnsley struck twice in four minutes.
Nick Blackman had lobbed too high, after running on to a raking Gunter pass, and Reading quickly paid the price. Cywka flicked a pass on to Noble-Lazarus, a half-time substitute, and his precise chip glided in over McCarthy.
In the 57th minute, Barnsley stunned Reading further when Jennings cut in unchallenged from the left and unleashed a superb 25-yard effort past McCarthy. The home fans made their anger known with a chorus of jeers.
Steele saved athletically to keep out an Alex Pearce header but Barnsley held on comfortably for only their second away win of the season.