Town made it 16 successive home wins on a Tuesday night thanks to another grandstand finish at Portman Road.
Ryan Fraser’s sixth goal of the season early in the second-half put Blues in front but Garath McCleary’s penalty looked to have given the Royals a point.
With the clock ticking towards the 90 minute mark though, Brett Pitman stabbed the ball home from Luke Varney’s excellent cross to give Town the points and a place back in the top six.
Town made three changes to the side that went down at Birmingham last time out, Ainsley Maitland-Niles replacing Kevin Bru, with Bart Bialkowski and Luke Hyam in for the injured Dean Gerken and the suspended Jonathan Douglas.
Tommy Smith was inches away from getting his head on the end of a corner, Oliver Norwood wasting a free-kick at the other end in a tentative start to the game.
Jordan Obita cleared over his own bar from Fraser’s dangerous cross, the Bournemouth loanee then whipping in an equally threatening free-kick that was eventually cleared by Matej Vydra.
Chris Gunter was forced to hurry his clearance from Daryl Murphy’s cross, Fraser again the architect of a chance down the left as the game came to life.
In Reading’s first real foray into Town territory, Smith diverted Hal Robson-Kanu’s cross to safety, then at the other end Anton Ferdinand blocked from Maitland-Niles 10 yards out.
Yann Kermorgant’s effort was blocked on the edge of the Town box, Jake Cooper heading wide from Norwood’s free-kick, then Vydra testing Bialkowski with a strike from 20 yards.
Ali Al Habsi denied Fraser at his near post in the last opening of an even first-half where chances were at a premium.
Bru replaced Maitland-Niles at the break, Hyam firing over after Luke Chambers had fed the ball back into the box in the first opening of the second-half.
Vydra failed to get any real power on his shot from Kermorgant’s cross but on 56 minutes the deadlock was broken, Sears the provider, Fraser the scorer off the post.
Murphy ripped a shot wide before Reading made a first change with McCleary on for Stephen Quinn.
Sears’ strike took a deflection into the sidenetting as Blues looked for a second, Smith’s header from a corner going straight at Al Habsi.
It needed Cole Skuse to rescue Town seconds later, the midfielder blocking McCleary’s cross when Vydra would have had a tap-in.
On 69 minutes Reading were level though, Skuse catching Robson-Kanu in the box and McCleary converted from the penalty spot.
Bru fired high and wide from distance, Vydra following suit at the other end, then Sears saw his shot deflected to safety.
Jonas Knudsen exploded a left footer from Murphy’s set-up that was held by the alert Al Habsi before Hyam made way for Brett Pitman for the last 10 minutes.
Knudsen blocked from Vydra as the points hung in the balance, Varney handed the last five minutes in place of Murphy.
It was the two substitutes who combined to provide the winner, Varney’s superb cross drilled home at full stretch by Pitman to take Blues back into the Play-Off places.