The incident happened Thursday on Highway 2 south of Edmonton, CBC News reported.
Alberta Health Services said 22 people were taken to hospitals for treatment of non-life-threatening injuries. About 80 others were treated at the scene.
Derek Fildebrandt, who witnessed the series of crashes, said it looked like more than 200 vehicles were involved.
"It's a massive, massive crash," he said. "It extended, got to be at least a few kilometers."
Officials said slick roads from a spring snowstorm caused the pileup.
A separate crash near Flatbush, Alberta, killed three people -- a 23-year-old woman, a 4-year-old girl and a 2-year-old boy -- Thursday morning, CBC News reported.
They were in a car that collided head-on with a pickup truck. Three others were injured in the incident.
Police said conditions at the time of the collision were "poor due to heavy snow and low visibility."