Danny Ings' goal put the home side ahead in the 21st minute and Sam Vokes made it two 10 minutes from time, with Jason Shackwell's own goal giving Reading a consolation and setting up an anxious finish.
The Clarets are top on goal difference ahead of QPR, who beat Barnsley 2-0 at Loftus Road thanks to a 65th minute goal and an 87th minute penalty, both from Charlie Austin.
Leicester City suffered only their second defeat of the season as they went down 1-0 at Doncaster Rovers thanks to an own goal by Kaspar Schmeichel.
Blackpool's goalless draw at Charlton meant that they were overtaken by Watford, who pulled themselves into the play-off spots with a 2-1 win away at Huddersfield, coming from behind as Fernando Forestieri and Daniel Pudil struck after Danny Ward had put the hosts ahead.
Ipswich's hopes of climbing the table were dealt a blow as they were held 1-1 by struggling Sheffield Wednesday, with Michail Antonio's 14th minute goal for Wednesday cancelling out Paul Anderson's opener for Ipswich two minutes beforehand.
The mid-table clash between Bournemouth and Millwall proved to be the match of the day, with the Cherries coming back from 2-0 down to win 5-2 at the Fitness First Stadium.
Middlesbrough pulled away from the danger zone with a 4-1 win over Yeovil, who ended the day at the bottom of the table after an 8th defeat of the season, while Derby thrived in the absence of axed coach Nigel Clough as they hammered Leeds 3-1 with goals from Christ Martin, Johnny Russell and Will Hughes.
In the lunchtime kick-off match, Bolton earned a much-needed 2-1 win away at Birmingham City, with Jermaine Beckford and Neil Danns goals proving enough despite Nikola Zigic pulling one back.
Brighton take on Nottingham Forest on Saturday evening while Wigan's Europa League exploits mid-week mean they play Blackburn on Sunday afternoon.