Barnsley saw their unbeaten home record ended in frustrating fashion by ten-man Reading.
Gareth McCleary and John Swift fired the Royals into a 2-0 lead after just 24 minutes, but McCleary was then sent-off for pushing over Reds skipper Conor Hourihane.
Adam Armstrong pulled a goal back with a fine strike nine minutes from time, but despite five minutes of added time, Paul Heckingbottom’s team couldn’t snatch a late equaliser.
As early as the third minute Ryan Kent thundered a shot against the crossbar for Barnsley.
But the Reds’ bright start was cut short when keeper Adam Davies needlessly felled John Swift and conceded a penalty.
The keeper did brilliantly to block McCleary’s first shot, but the midfielder lashed home the rebound for a ninth minute lead.
Winger Adam Hammill had a shot well-saved by Royals’ keeper Alial Habsi and striker Sam Winnall headed over the bar from a Hourihane free-kick.
McCleary shot wide of the left post, while at the other end Adam Armstrong had a header blocked and Hammill shot over.
The Reds’ pressure didn’t count though as Swift doubled the Royals’ lead with a brilliant 25-yard right-foot curler.
However, McCleary was then sent off for pushing over Hourihane. The Irishman was late with a challenge on Daniel Williams, but McCleary just didn’t need to get involved. And his moment of madness saw him given a straight red card.
Hourihane then shot over and midfielder Josh Scowen was denied a headed goal after a fine save from Habsi.
Winnall headed wide when in a great position early in the second half and Scowen headed over from an inch-perfect Houirhane delivery.
Armstrong went agonisingly close to scoring for the hosts, but Habsi produced an excellent save to deny him.
But Armstrong did score to give the Reds hope late on. Substitite Tom Bradshaw headed into Armstrong’s path the striker rifled past Habsi.
Scowen thought he’d equalised in the final minute of injury-time, but Habsi produced with another great save.
Barnsley: Davies, Yiadom, Roberts, MacDonald, White (Kpekawa 9), Hammill, Scowen, Hourihane, Kent (Janko 68), Winnall (Bradshaw 68), Armstrong.Subs: Townsend, Morsy, Jackson, Watkins.
Reading: Habsi, Gunter, McShane, Evans, Beerens (Quinn 71), Swift (Obita 52), McCleary, Moore, Kermorgant (Mendes 86), Williams, Blackett. Subs: Jaakkola, Harriott, Watson, Kelly.