Two goals from Nicky Forster and a first of the season from skipper Adie Williams enabled Reading to leapfrog Sheffield United into third place in the Division One table.
It was a thoroughly deserved fourth successive victory and leaves the Royals 10 points behind Leicester, who currently occupy the second automatic promotion spot.
The hosts have now lost their last three league games but it all looked rosy when they went ahead after just three minutes through Michael Brown's 12th strike of the campaign.
The 26-year-old midfielder, who has been in terrific form this season, curled home a brilliant free-kick into the top right-hand corner of the Reading goal after Dean Windass had been hauled down 25 yards out by Williams.
The lead was almost doubled just four minutes later but American goalkeeper Marcus Hahnemann made a wonderful low save to his left following Stuart McCall's stinging right-foot volley from outside the area.
The visitors threatened for the first time after 15 minutes, with left-back Nicky Shorey allowed time and space before firing a low drive wide of Paddy Kenny's left-hand post from 20 yards.
Windass muscled himself into a good position as play switched to the other end but, as he prepared to shoot from a tight angle, experienced defender Steve Brown made a vital block.
The hosts continued to create chances and after 23 minutes, Brown's looping far-post header following Phil Jagielka's excellent cross dropped just over the crossbar.
However, Reading came close to leveling shortly after when Shorey's whipped-in free-kick from the right deceived everyone except for Kenny, who made a fine save to divert the ball behind for a corner.
The equaliser finally arrived after 34 minutes. Andy Hughes showed an impressive turn of speed as he ran from deep before firing in a shot that was only half blocked by Robert Page which allowed Forster to nip in and slot the ball home from six yards.
The Blades were then forced into a change when Windass hobbled off to be replaced by 34-year-old striker Wayne Allison seven minutes before the break.
Reading, who gained revenge for their 2-0 loss when the sides met at the Madejski Stadium in December, started the second period brightly with on-loan Manchester United star Luke Chadwick posing problems with his mazy runs.
But it was the home side who could have restored their advantage after 51 minutes, Brown skipping past a couple of challenges before curling a right-foot shot over the crossbar from the edge of the area.
Alan Pardew's men continued to look the better side and Forster turned Wales international Page smartly before testing Kenny with a low drive just before the hour.
Hughes, James Harper and Steven Sidwell were dictating affairs in the middle of the park for the visitors, who made their first change when John Salako was replaced by 20-year-old Nathan Tyson after 63 minutes.
Paul Peschisolido came on for the disappointing Steve Kabba as Neil Warnock sought some fresh impetus but Tyson almost put Reading ahead with a rising angled drive that Kenny did well to keep out.
Page made a last-gasp challenge to deny Hughes as chances continued to flow for the visitors before Warnock made his final change with Marcel Cas coming on for his debut in place of Jean-Phillipe Javary.
Hughes was again denied by the outstanding Kenny after 73 minutes but, from the resulting corner, Reading took the lead they deserved.
Former Notts County player Hughes had a pile driver from 20 yards superbly parried by Kenny but Williams was on hand to lift the rebound into the roof of the net from an acute angle.
The game was made safe with 10 minutes left when the speedy Tyson went clear down the left and his low cross was expertly turned in by Forster for his 10th goal of the season.
He almost completed a hat-trick in the closing stages but headed Chadwick's cross narrowly wide.