The Blades put eight points between them and Rochdale in seventh place after Steven Davies hit a 71st-minute winner in a superb South Yorkshire derby which was lit up by two stunning goals by Doncaster’s Kyle Bennett.
It was Bennett’s first that gave Rovers the lead in the 17th minute with a picture-book effort as he cut inside from the angle of the penalty area and whipped a delightful shot into the top corner.
But their advantage was short-lived as the hosts levelled 12 minutes later thanks to Jose Baxter’s emphatic penalty following Jamie McCombe’s clumsy challenge on Matt Done.
The second half started in frantic fashion and Rovers twice could have restored their lead but Andy Butler mis-kicked at the far post with the goal gaping while James Coppinger’s flicked effort from eight yards rattled the crossbar.
Just a minute later the Blades rubbed salt into their visitors’ wounds by going in front for the first time when Done flicked home Davies’ cross from the left.
There was no way that was going to be the end of the scoring and Doncaster levelled seven minutes later just before the hour with another screamer from Bennett, who this time arrowed an unstoppable drive from 25 yards straight into the top corner.
But United had the final say of an enthralling encounter when Davies superbly curled home from just inside the area to earn the points.
Paul Dickov’s men had chances to get back in it but Richie Wellens had an effort cleared off the line while they were denied a blatant penalty for handball late on, with defeat leaving them 10 points off the play-offs.