Preston North End left it late but got the all-important goal with just eight minutes to go when The Beast, supersub Jon Parkin, scored his first goal for the club.
It was a freezing evening at Deepdale, but a higher than average crowd of 13,152 watched a turgid first half.
The first chance came after seven minutes when Ross Wallace had an inswinging corner which was missed at the near post by Doncaster Rovers keeper Neil Sullivan.
A left-wing cross by Wallace led to an effort by Callum Davidson which was tipped around the post by Sullivan for a corner.
An inswinging corner by Wallace was saved again by Sullivan and then Preston centre-half Youl Mawene had a 12-yard overhead kick saved above his head by Sullivan.
Richard Chaplow had a shot saved low down by the keeper Andy Lonergan.
Preston captain Paul McKenna making his 400th League appearance tackled Martin Woods in the centre of the park, but his 25-yard shot was easily saved.
Sullivan gathered another inswinging corner from Wallace right on half-time.
Seven minutes into the second half Preston striker Chris Brown played a neat one two with Davidson and then he hit a 20-yard shot which was easily saved by Sullivan.
Chaplow was booked for Preston for a foul on Brian Stock after 55 minutes and with time running out Preston made a double substitution in the 76th minute, bringing on Parkin for Brown and Barry Nicholson for Chris Sedgwick.
This worked wonders as in the 82nd minute Chaplow found Wallace on the right and he hit a left-foot cross over and Parkin, from inside the six-yard box, headed home the winning goal.