Despite missing a first-half penalty, Bolton won the bottom of the table battle to condemn Reading to their sixth successive defeat.
It was Bolton's first away win in the league this season and they deserved their success against a Reading side that lined up in an attacking formation, but looked out of sorts and can have no complaints about the result.
The only bright spot for Reading was the form of Czech international Marek Matejovsky on his first home start.
New boy Gary Cahill made an equally impressive debut for Bolton and together with Matt Taylor formed a strong physical partnership in defence.
Bolton's opening goal came after play had been held up by a lengthy argument over a free-kick.
Reading felt that Ivan Campo had gone to ground too easily and then complained that Bolton keeper Jussi Jaaskelainen was taking the free-kick from the wrong place.
Reading striker Leroy Lita protested at such length that he was booked for dissent as he tried to get the ball pushed back nearer Bolton's goal.
Eventually Jaaskelainen took a long free-kick down Bolton's right-flank where Kevin Davies held off the challenge of Kalifa Cisse to head the ball right across the penalty area.
Skipper Kevin Nolan gave his marker James Harper the slip with a run into the area that was timed to perfection and he slid the ball past Marcus Hahnemann into the Reading net.
Earlier Bolton had missed a wonderful chance of going ahead from the penalty spot.
Matejovsky brought down Gretar Steinsson and Taylor took the spot-kick, but Hahnemann dived to his left to punch the ball away with both fists.
At the start of the second half, Bolton pulled every defender back into their own penalty area as Reading piled on the pressure but then broke away to score a shock second.
Nolan's through ball found Taylor, whose flick-on struck Reading skipper Graeme Murty on its way through to Heidar Helguson.
Reading claimed offside but were ignored by referee Phil Dowd and Helguson calmly tucked the ball away to put clear water between his side and Reading.
Reading boss Steve Coppell tried a re-shuffle, bringing of striker Dave Kitson, pushing Kevin Doyle up front and bringing on John Oster in midfield.
Both sides had players back from the Africa Cup of Nations in the morning and Reading's Ibrahima Sonko and Bolton's El Hadji Diouf came off the bench as part of a flurry of substitutions midway through the second half.
Reading continued to storm forward and Jaaskelainen made a good save from a Nicky Shorey free-kick, but that was as much as the home side could muster as they found themselves in deeper trouble near the foot of the table.