Fit-again striker Andy Bishop broke the deadlock in the 25th minute before Nicky Ajose doubled the hosts' lead 10 minutes later.
And although the visitors piled on the pressure for the rest of the contest Bury hung on to end Doncaster's 12-match unbeaten away run.
Rovers made the early running and Chris Brown's header was saved by Bury goalkeeper Trevor Carson, while David Syers and Rob Jones volleyed over from inside the Bury box.
But the hosts began to threaten and took the lead following Joe Skarz's clever throw to Ajose. The on-loan Peterborough striker had run behind the visitors' defence and crossed first time for Bishop to score with a glancing header.
Jamie McCombe made an important block to deny Bishop, but moments later Skarz delivered an inswinging corner which sailed over goalkeeper Gary Woods and in off the far post, with Ajose claiming the final touch on the goalline.
Doncaster got straight back on the front foot, with James Coppinger and Brown firing wide either side of half-time.
Bishop spurned a great chance to seal victory on the hour-mark, firing straight at Woods after being played in by Ajose.
Doncaster continued to pour forward and Carson made a fine save to turn over Coppinger's shot, while McCombe volleyed over from 12 yards.
David Cotterill also went close and substitute Billy Paynter headed wide from close range as Bury held on.