Goals from Kieran Sadlier and Jon Taylor ended a four game winless streak for Rovers and nullified an opposition that arrived on the back of four straight victories.
It was a fully deserved triumph for a Rovers side that dominated attacking play and showed the fluency that has become their trademark this season.
Darren Moore made one change to the side that lost at Oxford United with Niall Ennis restored to the starting XI following his cameo at the Kassam. Kwame Thomas dropped to the bench.
It took Rovers a while to settle into the game but they began to enjoy the better of the attacking play, without finding the levels of fluidity they have previously showed this season.
They moved the ball well but misplaced passes as key moments as they looked to unlock the Bristol Rovers defence.
Ben Whiteman was the first to go close when he curled a loose ball towards the back post through a crowded area but Bristol Rovers keeper Anssi Jaakkola plucked the effort out of the air.
At the other end Alex Rodman drew a simple stop from Seny Dieng with a volley.
The game ignited fully on 25 minutes when Bristol Rovers were awarded a contentious penalty.
Sadlier lifted his boot to cut out a ball into the box with Alfie Kilgour stooping low to head it at the same time. Referee Robert Rock showed little hesitation and pointed to the spot.
But Rovers were let off as Tom Nichols produced a tame effort from the spot, making for an easy save for Seny Dieng who managed to hold onto the ball.
Whiteman twice went close, denied by both Jaakkola and Kilgour as Rovers continued to have the better of the play.
And they got their breakthrough on 39 minutes.
Jon Taylor crossed from the right, with the ball looping up off Luke Leahy's outstretched leg and Sadlier darted in ahead of keeper Jaakkola to nod into the far corner.
Ben Sheaf should have doubled the lead on the stroke of half time when darting in to meet an Ennis ball in only to put his shot straight at Jaakkola.
The pattern of the game continued into the second half and Rovers doubled the lead 11 minutes.
Ennis charged clear onto a delightful through ball from Whiteman but saw his shot saved by Jaakkola. Taylor made no mistake with the follow-up however, drilling home from 15 yards.
Such was the comfort of their lead, Rovers lost their way a little midway through the period, allowing Bristol Rovers to have a sustained period of pressure without the visitors being able to truly threaten.
Former Rovers winger Kyle Bennett came off the bench and tested Dieng with a drive from distance.
But Rovers soon found their groove again and were almost toying with the oppositon in the final third at times.
Whiteman struck the bar with a shot from 25 yards while Sadlier drew a smart save from Jaakkola after working space for a shot.
Substitute Kwame Thomas hooked narrowly wide from the edge of the box five minutes from time.
DONCASTER: Dieng; Halliday, Anderson, Daniels (Wright 79), James; Whiteman, Sheaf; Sadlier, Coppinger (May 87), Taylor; Ennis (Thomas 79). Subs not used: Lawlor, Greaves, Gomes, Longbottom.
BRISTOL ROVERS: Jaakkola; Rodman, Davies, Craig, Kilgour, Leahy; Clarke (Bennett 62), Upson, Ogogo; Smith, Nichols (Adeboyajo 57). Subs: van Stappershoef, Little, Menayese, Kelly, Hargreaves.
REFEREE: David Rock (Hertfordshire)
ATTENDANCE: 7,659 (563 away)