Three goals in the last 10 minutes sealed a dramatic and unlikely Reading comeback at the Reebok Stadium.
John Oster evades Tal Ben Haim's challenge
Nicky Shorey diverted Nicolas Anelka's effort in with 15 minutes left and Bolton looked to be easing to victory.
But Abdoulaye Meite hauled down Kevin Doyle inside the box leaving the Irishman to level from the spot.
And Doyle then took advantage of sloppy defending to poke home from close range before Stephen Hunt completed the win with a close-range header.
Reading's comeback looked extremely unlikely approaching the final 15 minutes with the visitors doing little to suggest a fightback was on the cards.
The home side began with purpose and industry - twice threatening the Reading goal early on with Kevin Davies and El-Hadji Diouf missing glorious chances to put them ahead.
Diouf wasted the first opportunity moments after kick off when he failed to make decent contact on Nicky Hunt's hopeful chip. From eight yards out and with a favourable bounce, Diouf should have forced a better save from Marcus Hahnemann who gathered the effort at the second attempt.
The second fell to Davies who scuffed at Ivar Ingimarsson's sliced clearance leaving Hahnemann to scoop up the mis-hit effort.
Reading were sloppy and wasteful in possession enabling Bolton to dominate and dictate proceedings.
But Wanderers failed to press home their advantage in the first half and barring Diouf and Davies' early chances, the home crowd had few other moments to cheer.
Anelka flashed a snap-shot just wide, while Doyle did likewise at the other end.
Bolton's afternoon was made worse by serious injuries to Hunt, Diouf and captain Kevin Nolan.
All three players were forced off in the first half with Hunt limping off with a calf problem, Diouf stretchered off with a hamstring worry and Nolan hobbling off after a crunching tackle with Michael Dubbery.
But the home side rallied and went ahead through Shorey's own-goal. The Royals defender diverted Anelka's misplaced effort into his own net to hand the hosts a deserved lead.
Reading had created precious little until the 80th minute when a moment of madness from Meite gifted Reading a route back into the match.
Meite struggled to contain Doyle's pace and chopped him down for a clear penalty with the Irishman bearing down on goal. Doyle had no problem thrashing home the penalty to lead the fightback.
The striker then gambled on a hopeful cross from Ulises De la Cruz and poked home from close range after Bolton failed to clear their lines.
Hunt then completed the win in style by powerfully heading home Shorey's pin-point cross.
Bolton manager Sam Allardyce:
"I didn't think much went our way. The difficulties we had with making the substitutions made it difficult to deal with.
"I'm amazed we've lost today and we should have punished Reading when we had the chance.
"We should have scored more and we went a bit too cavalier, Reading caught us out and were heavily punished."
Reading manager Steve Coppell:
"3-1 was unlikely but it was a result to enjoy. The scoreline certainly flatters us.
"We look to win games and sometimes we get caught out. That's why we fell behind. When it works it is admirable but sometimes it leaves us vulnerable.
"When we got the equaliser we looked to be on the front foot and it was a terrific win for us."
Bolton: Jaaskelainen, Hunt (Michalik 21), Ben Haim, Meite, Gardner, Nolan (Giannakopoulos 46), Speed, Teymourian, Davies, Anelka, Diouf (Thompson 31).
Subs Not Used: Walker, Martin.
Goals: Shorey 64 og.
Reading: Hahnemann, De la Cruz (Harper 74), Ingimarsson, Duberry, Shorey, Oster (Ki-Hyeon 73), Sidwell, Gunnarsson, Hunt, Doyle, Kitson (Long 77).
Subs Not Used: Federici, Bikey.
Booked: Shorey, Hunt.
Goals: Doyle 84 pen, 89, Hunt 90.
Ref: H Webb (S Yorkshire).