Reading moved a step closer to the Premiership after wearing down Luton Town and extending their unbeaten league run to 21 games.
Steve Sidwell's opener on the stroke of half time turned the game in Reading's favour after Luton had dictated play for long periods and late goals from substitute Dave Kitson and striker Kevin Doyle finally saw off the Hatters' bold resistance.
Sidwell had a chance to put the Royals ahead after only two minutes, but saw his powerful header fly straight at Marlon Beresford from Bobby Convey's corner.
Convey was himself desperately unlucky not to open the scoring when he cracked a volley direct from Glen Little's corner and forced Markus Heikkinen to head over his own bar from 12 yards out.
But Heikkinen's bravery on that occasion did not earn him any luck, as he was again the man in the way of Sidwell's shot a minute before the break but this time saw his deflection wrong-foot keeper Beresford and fly into an empty net.
Despite Reading's chances, the goal was rough on Luton who had prevented the league leaders from getting into their stride throughout the first half.
And the Hatters, chasing a second successive promotion after winning the League One title last season, had chances of their own.
Carlos Edwards saw a first-time shot from distance saved by Marcus Hahnemann, who scrambled back well having raced out of his goal to block Enoch Showunmi.
And Rowan Vine did well to hook a goalbound shot over his own head, only to turn and see Hahnemann plucking the effort out of the air.
The best Luton chance though fell to former Reading winger Dean Morgan, whose weak far-post header from an Edwards cross was scrambled round the post by Hahnemann.
Showunnmi also flashed a shot into the side-netting after being allowed space on the right, but Reading made the points safe 15 minutes from time as substitute Kitson struck with virtually his first touch.
Keeper Beresford raced from his line to try and cut out Little's floated free-kick, but Kitson got there first to flick a header into the unguarded net for his ninth goal of the season.
Kitson had replaced £1million man Leroy Lita on 63 minutes and the combination of Kitson and Doyle looked far more threatening than Lita and Doyle had done.
And it was Doyle who rounded off the win two minutes from time, powering home a header from Little's centre to consolidate Reading's four-point lead at the top of the table - and more importantly leave them 14 points ahead of third-placed Leeds.