Sharp struck in the 12th minute and Bristol City were never able to get back on level terms as Doncaster kept a third successive clean sheet.
The Robins looked the better side at the start of both halves but were unable to find a way through Rovers' resolute defence.
City could not sustain the pressure after a promising opening and a mistake by Cole Skuse presented Sharp with a chance that he accepted with glee.
Skuse could not control the ball as he tried to clear a long pass from James Coppinger and Sharp was in like a flash to take possession and slam the ball home from 20 yards.
Sharp headed just wide in the 25th minute after meeting a cross from Dean Shiels following good work from John Oster.
City seldom threatened in the first half despite the prompting of intelligent midfield player Paul Hartley, who set up a chance for Nicky Maynard when he sent him racing through in the 27th minute.
But the City striker could not take advantage under pressure from a couple of defenders.
Maynard had a shot comfortably saved soon after but the visitors redoubled their efforts at the start of the second half, with on-loan Costa Rica international striker Alvaro Saborio coming on to cause plenty of problems for the home defence.
Saboria raced through to force Neil Sullivan into a full-stretch save in the 49th minute and fired just wide four minutes later after Hartley had done the spade work.
But Rovers weathered the storm and finished on top with Sharp going close again in the 69th minute after latching onto a long ball from the back.