READING FC missed the chance to close the gap on the team’s above them in League One as they suffered their first home defeat in five matches.
The Royals made the perfect start when Harvey Knibbs headed them in front before Herbie Kane’s spot kick levelled for Barnsley before the break.
The Tykes made Reading pay in the second-half when Devante Cole slammed past David Button in the 80th minute before Max Walter’s goal made sure of the points.
Reading stay in 23rd position in the table, level on points with bottom placed Cheltenham, while the next five sides above them also lost.
The Royals returned to League One action after taking part in two successive cup competitions.
They followed up their FA Cup exit to non league Eastleigh with a penalty shootout success over Charlton Athletic in midweek.
Ruben Selles’ side were looking to make it three league wins on the bounce having broken their away hoodoo at Wycombe before they thrashed Carlisle United 5-1 in their last league outing.
In place of the injured Jeriel Dorsett at left-back was Clinton Mola, who featured on both flanks during Reading’s midweek cup win.
There was also a place on the bench for Caylan Vickers after he impressed once again during the EFL Trophy win.
Reading made an excellent start to proceedings, opening the scoring with just four minutes on the clock.
After a purposeful drive through the centre from former Barnsley man Andy Yiadom, he drew a free-kick which allowed Reading to get bodies into the box.
Lewis Wing clipped the ball in and Tyler Bindon’s flick on to the back post was perfectly placed for Harvey Knibbs to nod the ball into the far corner to make it 1-0 as he netted his ninth goal in all competitions.
The visitors’ first sight of goal came with a half chance when Sam Cosgrove smacked the ball well off target before Paul Mukairu cut in dangerously from the left and saw his shot blocked.
Michael Craig went into the book after flying into a tackle before Nicky Cadden was cautioned for the away team.
The Royals looked to threaten from another set piece and came close when Bindon’s header had the keeper scrambling across his line as the ball didn’t quite manage to squeeze inside the post.
The Tykes started to grow into the contest and forged some chances, one of which squirmed just wide of the far post with David Button rooted to his line after Luca Connell’s shot took a wicked deflection following Mola’s failed clearance.
Having replaced the injured Cadden, Callum Styles drove menacingly toward the Reading vox before skipper Andy Yiadom got his body in the way to protect his team’s goal.
Much to the confusion of the crowd at both ends, Barnsley were awarded a penalty in the 38th minute when a clearance struck Bindon’s arm which was spotted by referee Ollie Yates, who pointed to the spot.
Herbie Kane stepped up and dispatched the ball into the top left hand corner to beat Button who guessed the right way but couldn’t keep it out.
The Royals created another couple of chances in eight minutes of added on time as Knibbs’ low drive was intercepted before Smith didn’t have enough support in the middle following a perfect weighted through ball from Yiadom.
Reading started the second-half with promise when Azeez drove down the right and cut a cross back which was dummied by Mukiairu for Knibbs who scuffed a shot wide.
Neill Collins’ came close to executing a clinical counter attack but Cosgrove lifted his cross too high to find Devante Cole as Reading scrambled the ball behind for a corner.
Azeez tested the opposition defence with pace and trickery and saw his fizzed shot parried away by Ben Killip to stop Reading from regaining their lead.
Selles made his first change just before an hour when Vickers replaced Mukairu on the left-wing.
The Royals boss was shown a yellow card by the referee shortly after for protesting over a free-kick decision.
With 15 minutes to play, Amadou Mbengue was brought on to replace Mola at left-back.
With 80 minutes played, the Tykes took the lead when the ball was neatly chested down for Devante Cole who was given far too much room and time to get his strike away, which flew past Button.
Selles opted for a triple change to try and get his team back in the contest as Charlie Savage, Ben Elliott and Kelvin Ehibhatiomhan replaced Azeez, Wing and Craig.
But just moments after the subs, Barnsley put the game to bed when Max Walters was on hand to slide in from close range following Fabio Jalo’s low cross.
Reading are back in league action on Tuesday night when they host Oxford United in the local derby.
Reading: Button, Yiadom, Abbey, Bindon, Mola, Craig, Wing, Azeez, Knibbs, Mukairu, Smith
Subs: Pereira, Holmes, Elliott, Savage, Ehibhatiomhan, Mbengue, Vickers
Barnsley: Killip, Williams, De Gevigney, Cadden, Kane, Cosgrove, O’Keeffe, McCart, Phillips, Cole, Connell
Subs: Cooper, Russell, Lopata, Jalo, Cotter, Styles, Walters
Goals: Knibbs 4’, Kane 39’ (pen), Cole 80’, Walters 87’