The hosts opened the scoring after 17 minutes, as Jacob Brown slipped while trying to clear off the line, then doubled their lead on the hour-mark.
Although the Reds had at least as many chances as the Royals, it was a more sloppy performance than in recent games.
Barnsley remain second-bottom but the gap to safety has increased from three points to five after Wigan Athletic won at leaders West Brom to go out of the bottom three.
Gerhard Struber made two changes to the side that won at Hull City, with Kilian Ludewig and Marcel Ritzmaier coming in for Luke Thomas and Mike Bahre.
The Reds returned to the 3-4-1-2 formation which helped them beat Middlesbrough a week earlier with Jordan Williams joining Michael Sollbauer and Aapo Halme in central defence while Ludewig and Clarke Oduor were the wing-backs.
Brad Collins had to punch away a swerving 20-yard effort by Ovie Ejaria then, after Jacob Brown won the ball deep in the Reading half, Alex Mowatt overhit a pass which should have put Conor Chaplin clean through on goal in the home penalty area.
The opening goal arrived in calamitous fashion when John Swift’s free-kick from the right was volleyed towards goal by George Puscas and hit Yakou Meite then Brown could have cleared on the line but seemed to lose his footing and let it roll in. The goal ended a run of three successive clean sheets.
Brown could have made up for his error within a minute but he shot just wide of the bottom left corner from 20 yards. Chaplin then smashed a shot across the face of goal from ten yards out at a tight angle on the right after bringing down Mowatt’s cross.
Cauley Woodrow missed a massive chance just before half-time when home captain Michael Morrison lost the ball deep in his half but Barnsley’s top-scorer shot wide of the bottom left corner from just inside the box when he could have squared to Brown or Chaplin.
Woodrow was then denied twice by Brazil international goalkeeper Rafael with the last action of the first half. Ludewig made an excellent 50-yard run down the right wing then squared to Woodrow who saw his first effort from just inside the box saved then his follow-up was superbly tipped over.
For the second game in a row, Oduor was taken off at half-time with Thomas replacing him in a 4-4-2 diamond. The Royals almost doubled their lead within a minute of the interval but Meite sent a diving header wide from George Puscas’ cross. Struber then brought on Patrick Schmidt and Bahre for Chaplin and Ritzmaier on 56 minutes.
It was 2-0 after an hour when Puscas outmuscled Halme to get on the end of a long ball and go through on goal then beat Collins with a fine finish from the edge of the box.
Thomas fired a 30-yard shot straight at the goalkeeper but Reading should have had a third when a good move ended with Ejaria playing in Michael Olise who fired over from 12 yards out on the left of the box.
Woodrow came agonisingly close yet again when his front post header from Mowatt’s right-wing corner was somehow clawed off the line by Rafael who also stopped Brown putting in the rebound from two yards out.
The Reds then had a succession of long-range shots in the final 20 minutes which were all off-target as Woodrow tried his luck, three times, as did Mowatt, Thomas and Bahre.
Barnsley (3-4-1-2): Collins; Sollbauer, Halme, J Williams; Ludewig, Mowatt, Ritzmaier (Bahre 56mins), Oduor (Thomas HT); Woodrow; Brown, Chaplin (Schmidt 56). Unused: Walton, B Williams, Simoes, Dougall. Yellow cards: Mowatt, J Williams, Sollbauer.
Reading (4-1-4-1): Rafael; Yiadom, Morrison, Miazga, Obita; Swift (Pele 79mins); Rinomohota, Ejaria, Meite (McCleary 64), Olise (Masika 72); Puscas. Unused: Walker, Baldock, Blackett, Masika, Richards, Pele. Goals: Meite 17, Puscas 60.
-
13:28pm
-
-
15:01pm
-
15:04pm
-
15:06pm
-
15:08pm
-
15:11pm
-
15:15pm
-
15:16pm
-
15:17pm
-
15:18pm
-
15:19pm
-
15:23pm
-
15:27pm
-
15:30pm
-
15:31pm
-
15:33pm
-
15:36pm
-
15:38pmYELLOW CARD
-
15:40pmYELLOW CARD
-
15:42pm
-
15:45pm
-
15:45pm
-
15:47pm
-
15:48pm
-
16:01pm
-
16:03pm
-
16:03pm
-
16:05pm
-
16:08pm
-
16:11pmYELLOW CARD
-
16:12pm
-
16:12pm
-
16:13pm
-
16:13pm
-
16:15pm
-
16:17pmGOAL!
-
16:19pm
-
16:20pm
-
16:21pm
-
16:25pm
-
16:27pm
-
16:28pm
-
16:32pm
-
16:33pm
-
16:35pm
-
16:35pm
-
16:39pm
-
16:40pm
-
16:41pm
-
16:43pm
-
16:45pm
-
16:49pm
-
16:52pm