Price gave City the perfect start when he flicked in Stuart Green's free kick with his head past Rovers keeper Andy Warrington.
However, City failed to hold on to the lead and were pegged back 6 minutes before half time. Leo Fortune-West latched on to a loose ball just inside the area, and worked an angle for the shot that left Boaz Myhill with no chance.
Stuart Green had a left-footed shot well saved by Warrington just after the break, but Price went one better midway through the half. Stuart Elliott played the ball through, and after the referee waved play on following Price's use of his hand, he finished past Warrington.
The visitors frantically fought to get back in the game, but Price sealed it with his third 13 minutes from time. Ben Burgess' poor header was kept out by Warrington, but the Welshman drilled in the rebound to complete his hat-trick.
23,006 were at the KC Stadium to see City move up to 3rd place following the 3-1 win. Doncaster slip to 2nd, with Oxford taking advantage to go 2 points clear at the top.
City line-up (4-4-2): Myhill; Hinds, Joseph, Delaney, Dawson; Price (France 90), Green (Thelwell 80), Ashbee, Elliott; Burgess, Forrester (Allsopp 70).
Un-used subs: Musselwhite, Holt.