Resilient Reading came away from Barnsley with a hard-fought 2-1 win in the Sky Bet Championship, despite playing most of the game with only 10 men.
Garath McCleary opened the scoring early on but the winger was sent off six minutes after John Swift had fired Reading into a 2-0 lead.
Despite on-loan striker Adam Armstrong halving the deficit late on for the hosts, Reading held firm to secure the victory.
Barnsley went into the game buzzing on the back of a midweek hammering of Wolves, and it was the home team who started better as tricky winger Ryan Kent cut in from the right and launched a rocket from distance against the Reading bar.
With Barnsley on the front foot, however, a low corner was picked up by Reading's creative midfielder Swift, who stormed up the pitch and then received the ball from McCleary before he was tripped in the Barnsley box by goalkeeper Adam Davies.
The resulting penalty was initially saved by Davies, but it dropped kindly for penalty-taker McCleary who struck home the rebound and gave the Royals a ninth-minute lead.
The time following the goal saw persistent pressure from the away side, as the Tykes struggled to break out of their own half. A low shot from Yann Kermorgant was saved, and McCleary fired wide from inside the area.
In the 27th minute, Barnsley midfielder Josh Scowen failed to play to the whistle, leaving Swift with acres of space in the middle. The former Chelsea player was given time to advance, shift the ball out of his feet and curl a sumptuous effort into the top corner to give his side a 2-0 lead.
Reading had little time to celebrate, however, as McCleary, who had arguably been man of the match up to that point, saw red in the 33rd minute for shoving Barnsley captain Conor Hourihane to the ground after he took issue with a seemingly innocuous foul on Danny Williams.
Predictably, Barnsley came out of the blocks quicker in the second half against the 10 men. A series of corners early on saw a free header driven wide from striker Sam Winnall, and Hourihane glance his header over the bar.
Although they kept the visitors penned in, Barnsley struggled to engineer clear-cut chances. Adam Hammill fired high and wide after a short corner, and shortly afterwards Newcastle loanee Armstrong saw his effort saved wide by Ali Al-Habsi.
Reading defended well, and could muster only rare threats on the Barnsley goal. In the 66th minute, Kermorgant struck a driven effort straight at keeper Davies.
The home side's pressure eventually paid off, however, just over 10 minutes from time. Armstrong, who had been full of energy all afternoon, picked the ball up on the edge of the area and fired into the bottom corner to set up a grandstand finish.
Reading were well organised, however, and restricted Barnsley to few clear chances in the final moments.