Bolton picked up their first away win in 10 months as struggling Reading slipped to a sixth successive defeat.
Nolan put Bolton ahead in the first half
After Matt Taylor failed to put Bolton ahead with a penalty, Kevin Nolan gave the Trotters the lead on 33 minutes with a 12-yard shot.
And Heidar Helguson made it 2-0 just before the hour mark, beating the Reading defence to slot home.
Reading attacked for much of the second half, but Bolton's defence stood firm, with debutant Gary Cahill outstanding.
The first chance of the game came on 10 minutes when Nolan worked his way into the Reading penalty area and shot into the side-netting.
Reading had an opportunity when a long passl came to the path of Leroy Lita, but Bolton goalkeeper Jussi Jaaskelainen rushed out to get the ball first.
Bolton's penalty came when Marek Matejovsky, making his Reading debut, made a rough challenge on Gretar Steinsson just inside the box in the 23rd minute.
But Taylor's spot-kick was saved by Marcus Hahnemann, who dived to his left to stop the low shot.
Bolton took the lead on 33 minutes when a clearance from goalkeeper Jaaskelainen found Kevin Davies in the penalty area.
He headed across to Nolan, who rushed down the centre to finish for his fifth goal of the season.
Reading put Bolton under intense pressure after the break, and on 50 minutes a corner swung in and the ball was cleared off the line by Danny Guthrie.
Bolton went 2-0 up against the run of play when a pass from Taylor found its way through the Reading defence, who were expecting offside to be given.
The flag stayed down - Helguson had indeed been a yard to the good - and left one-on-one with Hahnemann the Icelandic striker slotted home.
In the 71st minute Jaaskelainen made a fine one-handed save, diving to his right to stop Nicky Shorey's curling free-kick.
Stephen Hunt worked hard as Reading tried to pull a goal back, but Cahill had a fine game in the Bolton defence.
Reading boss Steve Coppell:
"I have a squad of committed players who want to be playing at the top level.
"There is a third of the season and we have to win the games against the teams around us.
"We are not scoring enough goals and we have not had a clean sheet for a long time.
"We have to be better and it is my responsibility to make sure that we are and I am not afraid of the challenge."
Bolton manager Gary Megson:
"It was a huge win in the context of where we are in the table compared with Reading and it is a great result.
"We needed the second goal because in the second half they put under a lot of pressure.
"They put a lot of balls into the box and in the main we dealt with them well."
Reading: Hahnemann, Murty, Ingimarsson, Cisse, Shorey, Doyle, Harper (Sonko 73), Matejovsky, Hunt, Lita (Long 76), Kitson (Oster 67).
Subs Not Used: Federici, De la Cruz.
Booked: Lita, Kitson, Ingimarsson.
Bolton: Jaaskelainen, Steinsson, Andrew O'Brien, Cahill, Gardner, Guthrie (Cohen 75), Nolan, Campo, Taylor (Samuel 67), Helguson (Diouf 67), Davies.
Subs Not Used: Al Habsi, Rasiak.
Goals: Nolan 33, Helguson 58.
Ref: Phil Dowd (Staffordshire).
BBC Sport Player Rater man of the match: Bolton's Kevin Nolan 7.75 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.