Rovers have earned more than twice as many points on their travels as they have at the Keepmoat this season and Preston cashed in to add to their home woes.
The first half was played at break-neck pace with both sides closing down quickly and clear- cut chances at a premium.
But the visitors snatched the lead in the 33rd minute when Jack King headed them in front after being left unmarked in the centre of goal following a corner from Joel Byrom.
Rovers had earlier gone close with an effort from Billy Paynter and David Cotterill fired over the bar shortly after Preston had scored. They levelled on the stroke of half time when Cotterill hammered home a 20-yard free kick that took a welcome deflection off the head of Byrom.
Doncaster came out for the second half with renewed purpose but were rocked again when they conceded another goal from a corner kick, left-back Scott Laird heading home at the near post.
Doncaster battled hard with Paynter having a shot blocked, but Preston broke away against the run of play to clinch the match in the 72nd minute when Stuart Beavon fired home.
Preston defended resolutely after and Paynter was out of luck again when he hit the angle of post and bar 11 minutes from time.
Doncaster Rovers: G Woods, Quinn, Spurr, Jones, McCombe, Bennett, Cotterill, Syers, M Woods, Brown, Paynter. Unused substitutes: Sullivan, Keegan, Husband, Martis, Blake, Middleton.
Preston North End: Stuckmann, Laird, Huntington, Amoo (Monakana 58), Byrom, Buchanon (Procter 75), Beardsley, Mousinho, King, Wright, Beavon. Unused substitutes: Simonsen, Cansdell-Sherriff, Wroe, Welsh, Nayhurst.
Referee: D Whitestone (Northants).