Sharp's sixth goal in as many games put Doncaster on course for a fourth consecutive win that was sealed by James Coppinger's late drive.
Doncaster came into the game as one of the Championship's form teams, but Derby showed why they were unbeaten in four when they created the first chance in the fifth minute.
Gary Teale's cross from the left found Paul Green unmarked at the back post but he could not direct his shot on target.
Both sides had struggled to find any fluency on a pitch carrying a light covering of frost despite the undersoil heating and it was a mistake that led to the opening goal in the 21st minute.
Jay McEveley gave the ball away to Dean Shiels 30 yards out and he played in Sharp, who checked back inside before placing a low shot past Stephen Bywater from 14 yards.
Bywater kept Derby in the match just before half-time when he took off to his right to tip over a volley from Mark Wilson.
Derby waited until the 56th minute before making a double change and the move almost paid off when Rob Hulse just failed to get his head to a Teale corner.
Chris Porter headed a Robbie Savage corner over and Neil Sullivan saved at the feet of Hulse in the 71st minute as Derby's pressure increased.
But the home side carved out few clear chances and Doncaster wrapped up the points when McEveley lost possession and Coppinger easily beat Bywater to leave Derby with plenty to ponder in the next week.