RCMP say the officer had just responded to an accident and was returning to the Stony Plain detachment when he was hit by a pickup truck.
The driver of the truck lost control on some ice and slid into the front of the police cruiser, about 10 kilometres south of Spruce Grove.
Firefighters used the Jaws of Life to free the Mountie, who was alert and talking.
He was air-lifted to hospital in Edmonton with serious injuries to his legs.
Two men in the truck were treated for minor injuries.