Garath McCleary scored before being sent off as Reading beat Barnsley despite playing more than half the game with 10 men.
McCleary saw his penalty saved by Adam Davies, after John Swift was brought down, before firing in the rebound.
Swift then curled in a second before McCleary was sent off for shoving Barnsley captain Conor Hourihane to the ground.
Adam Armstrong fired in a low shot for Barnsley late on but Reading held firm.
It was a disappointing result for the Tykes, who had thrashed Wolves 4-0 at Molineux on Tuesday.
Ryan Kent went close to putting them ahead when he struck the crossbar but it was the visitors who took the lead after Swift was brought down in the box by keeper Davies.
Davies did well to save the penalty but was unable to deny McCleary’s follow-up attempt.
Following Swift’s sublime finish to put Reading 2-0 up, McCleary was sent off for his reaction to a seemingly innocuous foul by Hourihane on Danny Williams.
But, despite having an extra man, Barnsley struggled to create clear chances, with only Armstrong being able to find the net.