Doncaster threatened after four minutes when Abdul Razak fired a shot from 30 yards which was pushed away by Sam Johnstone low to his left.
But the hosts took the lead after 13 minutes through Daniel Johnson, who has now scored in each of the last four games. The midfielder picked the ball up on the edge of the area and fired home off the left post.
However, the drama came in the final stages after Rovers equalised on 81 minutes through Harry Forrester.
James Coppinger dribbled through the Preston defence superbly and the ball fell to Forrester on the edge of the box before he slotted home left-footed.
And the visitors stunned Deepdale just three minutes later through Curtis Main, who got on the end of a right-wing cross to give Doncaster the lead.
But it was not enough as Beckford equalised in stoppage time, striking at the far post from six yards to snatch a point.