Two second-half penalties ended Bristol Rovers' 11-match unbeaten run as Doncaster kept up their promotion push.
Doncaster edged the first half and James Coppinger saw a shot cleared off the line by Stuart Campbell early on.
Jason Price headed against a post for Doncaster, but the home side took the lead when Brian Stock scored from the spot after a foul on Richie Wellens.
And they sealed the win in injury time with a Paul Heffernan penalty after a handball from Anthony Pulis.
Doncaster: Sullivan, O'Connor, Stephen Roberts, Mills, Gareth Roberts, Green, Stock, Wellens (McDaid 87), Coppinger (Guy 80), Price (Heffernan 70), McCammon.
Subs Not Used: Woods, Wilson.
Booked: McCammon.
Goals: Stock 65 pen, Heffernan 90 pen.
Bristol Rovers: Phillips, Lescott, Hinton, Coles, Jacobson, Pipe (Pulis 76), Campbell, Disley (Rigg 66), Lines (Igoe 72), Lambert, Williams.
Subs Not Used: Carruthers, Anthony.
Booked: Campbell, Phillips, Coles, Pulis.
Att: 8,168.
Ref: Graham Laws (Tyne & Wear).
Bookmark with:
What are these?