Missed chances proved costly for Rovers as they lost a pulsating encounter at the Macron Stadium.
Rovers were undone by two second half goals in as many minutes as Emile Heskey and Darren Pratley strikes either side of the hour mark won the match for Bolton.
But it was in the first half where Rovers should have seen won the game, but they couldn't turn their dominance into goals.
The tone was set when Jordan Rhodes struck the post after just a minute, before Andrew Lonergan made superb saves to thwart Tom Cairney, Ben Marshall and Rhodes as Bolton were continuously penned back.
After knocking at the door for so long, it was Josh King who eventually broke the deadlock. Racing clear on 41 minutes to score his first goal since March after rounding the Bolton goalkeeper.
But the half-time introduction of Heskey proved to be the catalyst for the home side and he got them back on level terms on 59 minutes, firing home at the back post from Eidur Gudjohnsen's pass.
No sooner had the Trotters levelled then they took the lead. A ball to the back post was nodded down for Darren Pratley and he blasted home from six-yards out.
Jordan Rhodes thought he had levelled on 69 minutes but referee Craig Pawson somehow ruled his close-range shot out. Then the Bolton goal lived a charmed life in a goalmouth scramble that saw the woodwork struck on three occasions from Rudy Gestede, Grant Hanley and Rhodes.
Rovers continued to pour forward in the closing stages, Lonergan tipped over a back header from Corry Evans, before Grant Hanley volleyed over.
But ultimately it was the spurned first half chances that did the damage, Bolton had a three minute purple patch and they took full advantage to claim all three points.
Ahead of the Boxing Day clash boss Gary Bowyer made three changes from the side that defeated Charlton Athletic 2-0 six days ago.
Two of them were enforced with Alex Baptiste ineligible to face his parent club, whilst Jason Lowe missed the game with the foot injury sustained last time out.
Those places were taken by Adam Henley and Tom Cairney, whilst Josh King was preferred up front to Rudy Gestede.
For the home side, they named an unchanged line-up, one that included form Rovers players Liam Feeney and Neil Danns.
It was so nearly the dream start to the match from a Rovers point of view with the frame of the goal rattled just a minute to the match at the Macron.
A cross from the left by Markus Olsson saw Trotters keeper Andy Lonergan only palm the ball into the path of Jordan Rhodes, but whilst the striker showed quick reactions, the striker saw his header strike the post.
Showing the same attacking impetus as they did against Charlton in the previous match, Rovers continued to take the game to the home side.
On 13 minutes after a Ben Marshall free-kick didn't beat the wall, the ball came back out to Tom Cairney who struck a sweet volley only for Lonergan to make a fantastic save diving to his right.
Darren Pratley bent an effort wide of target as the home side looked to wrestle control of the match, instead it was Rovers who should have taken the lead once more on 20 minutes.
On half way Josh King threaded the ball through for Marshall to run half the length of the pitch but Lonergan made a superb fingertip save.
Then it was the Trotters who were ruing a missed chance, Liam Feeney's pinpoint cross from the right picking out Eidur Gudjohnsen, but the Icelander somehow blazed wide with the goal at his mercy,.
Three minutes later and Rovers again spurned a glorious chance. In a near carbon-copy of the opening goal last weekend Marshall slipped Rhodes through on goal, but on this occasion he shot wide of the near post.
Just when it looked like both sides would be frustrated in their attempts in front of goal, Rovers broke the deadlock with four minutes of the half remaining.
A ball out of defence from Adam Henley was missed by Rhodes and his marker and that allowed King to run in on goal unopposed. The Norwegian rounded Lonergan before steadying himself and firing into the back of the net.
There was still plenty of time for more drama in what was a pulsating first half. Lee Chung-Yong forced Jason Steele into a one-handed save before former loan man Liam Feeney sent a dangerous cross in the box that bounced off the top of the crossbar.
It would have been an injustice had Rovers not gone in at the break in front, but it really should have been by a greater margin, and they would live to regret it.
Neil Lennon made a change at half-time with Emile Heskey coming on for his Bolton debut, Robert Hall making way.
Almost immediately the former England man imposed himself, holding off Grant Hanley to fire the ball across the box, Feeney raced onto the loose ball but could only find the side-netting.
There was no doubt that Bolton had upped their game after the break, Heskey fired into the side-netting with a half chance, before the veteran forward scuffed a shot into the arms of Steele.
But just ahead of the hour mark, the man who always seemed to score against Rovers struck.
Eidur Gudjohnsen wriggled free of Shane Duffy to bear down on goal and he threaded the ball across the area for Heskey to poke home at the back post.
From being in control suddenly Rovers were on the ropes and Bolton took full advantage. Gudjohnsen played in Pratley, his cross was cleared as far as Lee but somehow Adam Henley kept his goalbound effort off the line via the woodwork.
But the home side regained possession and as a ball was sent deep to the back post, it fell for Darren Pratley and he fired the Trotters in front a second goal in as many minutes..
Jordan Rhodes and the 4362 Rovers fans then all thought the striker had put the visitors back on level terms on 69 minutes.
Persistance from Marshall saw him found Cairney and although his run into the box was thwarted by Matt Mills the ball broke to Rhodes and he steered the ball into the back of the net.
Somehow, somewhere, the officials saw an infringement and the goal was ruled out.
That saw Rudy Gestede introduced, replacing Cairney who was quiet on his return to the side, Rovers switching to a 4-4-2 formation with King left and Marshall right, Rhodes and Gestede up front.
Then Bolton somehow survived an unbelievable goalmouth scramble. From an Olsson cross Gestede looped a ball towards goal that hit the bar, Hanley and Rhodes both saw headers somehow kept off the line, the woodwork helping the home side once more.
Craig Conway replaced Josh King and the Scot almost made an immediate impact. Barely two minutes after his introduction he clipped a ball into the box, Corry Evans cutely headed backwards, Lonergan having to back-pedal to tip over the bar.
Rovers continued to pile the pressure on Grant Hanley acrobatically volleying over from the penalty spot from Rhodes knock down.
A third and final change followed for Rovers as David Dunn, so impressive as a late substitute last week, replaced Ben Marshall. The home side responded with a defensive change as David Wheater replaced Liam Feeney.
Rovers threw more and more bodies forward in the closing stages but there were no further opportunities to leave the visitors departing the Macron Stadium wondering quite how they hadn't won the match.
BOLTON: Lonergan, Vela, Dervite, Mills (c), Ream, Danns, Pratley, Feeney (sub Wheater 88 mins), Hall (sub Heskey 46 mins), Lee, Gudjohnsen (sub Trotter 76 mins).
Subs not used: Bogdan (GK), Moxey, Spearing, Clough.
Goals: Heskey 59 mins, Pratley 62 mins
ROVERS: Steele, Henley, Hanley (c), Duffy, Olsson, Cairney (sub Gestede 69 mins), Evans, Tunnicliffe, Marshall (sub Dunn 87 mins), Rhodes, King (sub Conway 76 mins).
Subs not used: Eastwood (GK), Kilgallon, Varney, Williamson.
Goals: King 41 mins.
Booked: Duffy, Evans.
Attendance: 23,203 (4,362 Rovers fans)