Midfielder James Harper poked in a crucial late winner to take Reading clear of the chasing pack in the play-off places and all but condemn Nottingham Forest to relegation.
Harper took advantage just moments after Forest keeper Paul Gerrard had been red-carded for handling outside his penalty area.
And the defeat leaves Forest six points adrift of the safety zone with just three games left to scrap for survival.
Reading though, are now four points clear of West Ham and Sheffield United after their weekend slip-ups, and their third successive league victory puts them within sight of a play-off place.
But they were made to sweat by a Forest side who have now gone eight games without a win - a run that leaves them six points adrift in the drop zone with just nine points to play for.
The visitors set up with a stubborn but positive 5-3-2 formation, attempting to smother the home side and create chances of their own on the break.
That meant Reading's four-man midfield was able to dominate, though chances were hard to come by as Forest stuck firmly to their game plan.
Harper was within an inch of turning Nicky Forster's low cross home at the far post midway through the first half and veteran defender Martin Keown, making his first start in a Reading shirt, saw a header clawed away by Gerrard.
The Forest keeper also did well to keep out a Dave Kitson header on the stroke of half time.
But Gerrard's luck ran out 19 minutes from time when he was adjudged to have handled outside his penalty area.
Striker Kris Commons was sacrificed as substitute keeper Colin Doyle was brought on, but Doyle was beaten just two minutes later as Reading snatched the vital breakthrough.
Forest captain Gareth Taylor appeared to handle Les Ferdinand's knock-down, but referee Steve Tanner allowed Reading to play an advantage and Harper gratefully slotted home.
Forest had their chances, Steve Coppell's former Brentford captain Paul Evans skimming the top of the bar from a long-range free-kick, but they had no response to the cruel twist of fate so late in the game.