The visitors flew out of the blocks and led 2-0 after just 15 minutes thanks to goals from Neil Danns and Joe Mason, but Doncaster pulled one back almost immediately through David Cotterill’s stunning free-kick.
The home side then dominated the second half and will feel they deserved at least a point for their efforts, but they could not find a way past the outstanding Adam Bogdan in the Bolton goal.
Bolton began at a blistering pace and looked set for a comprehensive victory after racing into a two-goal lead inside the opening quarter of an hour.
They adopted a shoot on sight policy and it paid off when they snatched the lead in the seventh minute.
A low right-wing cross from Alan Hutton was stepped over by a couple of players and Danns charged in to hammer home a superb shot just inside the post from the edge of the box.
Paul Keegan had a close-range header saved following a corner as Rovers tried to hit back before the rampant Wanderers stretched their lead.
Lee Chung-yong headed down a free-kick and Mason slammed the ball home in fine style from a tight angle.
Doncaster looked dazed but Cotterill fired them back in the match with a brilliant 30-yard free-kick that dipped under the bar just three minutes later.
It led to a frantic passage of end-to-end play with both keepers being called on to make some excellent saves.
Sam Johnstone did well to tip a scorching 25-yarder from Lukas Jutkiewicz over the bar and then saved at full stretch from Zat Knight from the resulting corner.
Richie Wellens was then denied an equaliser by a splendid reflex save from Bogdan at the other end.
Doncaster finished the half on top with Keegan and Chris Brown going close – and they continued where they left off after the interval.
It was Bolton’s turn to defend as Rovers piled on the pressure with Billy Sharp heading just wide from James Husband’s left-wing cross.
Jutkiewicz had a shot saved at the other end after the Rovers’ defence had given the ball away before the one-way traffic continued.
Husband should have had a penalty after being brought down by Medo in the 60th minute but the appeals were waved aside.
Doncaster’s efforts went unrewarded again in the 80th minute when Bogdan made another fine save from Cotterill.
David Wheater had a header saved following a free-kick in another rare attempt from Bolton and the home side were out of luck again right at the death when Brown just failed to convert with a diving header.