Town's run of eight unbeaten away games came to an end at the Madejski with Simon Church grabbing the winner with his first touch.
The Royals' striker deflected a Jeff Karacan shot past Marton Fulop four minutes from time in a game of few chances.
Jason Scotland missed the best opening for Blues, driving the ball wide when clear on goal in the first-half.
Both teams finished with 10 men, Luke Hyam and Matt Mills dismissed for two yellow cards, with David Norris also picking up his fifth booking of the season and a one match suspension to go with it.
Roy Keane made three changes to the side that drew with Scunthorpe at the weekend, with Hyam and Jaime Peters keeping their places after impressing as substitutes at Glanford Park and Troy Brown coming in at full-back.
Andros Townsend fired over inside the first minute after a Town break in one of few openings in the first-half.
Darren O'Dea, playing in the middle of the Blues' defence, denied Shane Long with a terrific challenge, the Reading frontman then beaten by Marton Fulop to a teasing cross from Hal Robson-Kanu.
Scotland couldn't get any power on his header from Townsend's cross, Norris pulled his left foot shot wide before Blues had by far the clearest chance of the half on 24 minutes. Scotland did superbly to out muscle Mills to a long ball but drilled his shot wide from 10 yards when clear on goal
Townsend's cross was hacked clear by Alex Pearce as Scotland threatened, while at the other end Jimmy Kebe blasted wide.
Karacan headed over from 12 yards before Hyam picked up a yellow card for a foul on Long.
Fulop was alert to the danger after the ball landed at Robson-Kanu's feet inside the Town box, the 'keeper ending the danger with a leap on the ball, Grant Leadbitter failing to hit the target for Town after Norris led a break.
Mills became the first Royal to go into referee Phil Crossley's book after bringing down Townsend but Carlos Edwards' free-kick was blocked, with Scotland just failing to get on the end of Townsend's cross in the last action of an even first-half.
Townsend forced Adam Federeci into an early save as the second-half got underway, the Australian 'keeper then denying the Town loanee again with a low save after a corner had fallen to the winger 18 yards out.
Seconds later, Town were reduced to 10 men , Hyam dismissed for a second yellow after kicking the ball away after a free-kick had been given against him.
Town made a double change on 57 minutes, Connor Wickham and Reggie Lambe on for Scotland and Edwards.
The teams were evened up on the hour with Mills shown a second yellow as well after catching Townsend.
Fulop held firm from Long's flicked header, Wickham then weaving past two defenders before Pearce's challenge saw the threat averted.
Reading made their first change on 70 minutes, Kebe, who had been marshalled well by Peters, replaced by Michail Antonio and the substitute immediately set up Jobi McAnuff, whose shot was beaten out by Fulop.
Shaun Cummings added to referee Crossley's collection of names for a foul on Townsend as the game entered the last quarter hour.
McAnuff tested Fulop again with a drive from the edge of the box before Blues made a final change, Jake Livermore coming on for his Town debut after joining on loan from Tottenham, his Spurs' team-mate Townsend making way. Noel Hunt replacing Long for the final 10 minutes as well.
Livermore was straight in the action, lashing a shot just wide after good work by Lambe down the Town right. Leadbitter then testing Federeci from 35 yards.
Norris picked up his fifth yellow card of the season for a push, meaning the skipper will serve a one match suspension.
Reading's final change saw Church replace the injured Robson-Kanu and the striker found the net with his first touch, diverting the ball past Fulop to give the Royals the points.
Reading: Federeci, Cummings, Mills, Pearce, Harte, Kebe (Antonio 70), Karacan, Armstrong, Robson-Kanu (Church 86), McAnuff, Long (Hunt 79). Subs not used: Williams, Ingimarsson, Taylor, McCarthy. Sent-off: Mills. Booked: Mills, Cummings.
Town: Fulop, Brown, McAuley, O'Dea, Peters, Edwards (Lambe 57), Hyam, Norris, Leadbitter, Townsend (Livermore 79), Scotland (Wickham 57). Subs not used: Priskin, Kennedy, Smith, Murphy. Sent-off: Hyam. Booked: Hyam, Norris, Wickham.