The bus was carrying the Humboldt Broncos of the Saskatchewan Junior Hockey League to the town of Nipawin for a play-off game. It collided with a transporter truck.
The Royal Canadian Mounted Police said 28 people, including the driver were on the bus, 14 of whom were killed.
The other 14 have been taken to hospital and are in a critical condition.
The lorry and the bus collided at around 17:00 local time (23:00 GMT).
Their team list shows the players are aged between 16 and 21.
“I cannot imagine what these parents are going through, and my heart goes out to everyone affected by this terrible tragedy, in the Humboldt community and beyond,” Canadian Prime Minister Justin Trudeau tweeted.
“There have been multiple fatalities - our whole community is in shock,” said Kevin Garinger, president of the Humboldt Broncos of the Saskatchewan Junior Hockey League.
Mr Garinger said parents from across western Canada are rushing to the scene as they struggle to cope with the tragedy.
“It’s a horrible accident, my God,” said Darren Opp, president of the Nipawin Hawks hockey team. “It’s very, very bad.”
Mr Opp said the truck hit the side of the players’ bus, adding that the coaching staff and players from the Hawks are waiting to help.
Kevin Henry, a coach who runs a hockey school in Prince Albert, said people are in shock. “It is sort of every parent’s worst nightmare.”
“This is I would think one of the darkest days in the history of Saskatchewan, especially because hockey is so ingrained in how we grow up here,” Henry said.
The Saskatchewan Junior Hockey League is a Junior ‘A’ hockey league under Hockey Canada, which is part of the Canadian Junior Hockey League. It is open to North American-born players between the ages of 16 and 20.