COPENHAGEN, Denmark -- Switzerland stunned title favorite Canada 3-2 on Saturday to reach only its third final of the world ice hockey championship.
The Swiss will play the gold-medal game on Sunday against defending champion Sweden, which strode into the final by crushing the United States 6-0.
Canada and the U.S. will play for bronze.
"We obviously got motivated a lot playing them," Switzerland defenseman Mirco Muller said. "They're the best country in the world, hockey-wise, and they have a great team here. It was a great battle for us."
Canada goaltender Darcy Kuemper made some fine saves in the first period before Tristan Scherwey scored the go-ahead goal for Switzerland with 1:19 remaining in the first period.
Bo Horvat tied it in the second, but Switzerland proved resilient, and Gregory Hofmann restored the Swiss lead on a power play.
Gaetan Haas struck again on a power play in the third, redirecting into the net a shot by Sven Andrighetto from the point.
Colton Parayko blasted a slap shot past Swiss goaltender Leonardo Genoni to reduce the lead with 2:07 left in the final period, as Canada pulled Kuemper for an extra attacker in vain.
"Switzerland played an unbelievable game," Canada defenseman Aaron Ekblad said. "From the drop of the puck, they came at us hard in every facet."
Genoni stopped 43 shots.
"It's important that we win the last game," Canada captain Connor McDavid said of Sunday's bronze-medal game. "We're up to do it."
Switzerland's best results have been runner-up in 1935 and 2013. Sweden is going for a third world title in six years and 11th overall.
"We're the big underdogs [against Sweden]," Swiss forward Reto Schaeppi said. "We have a chance if we play a really good game."
Sweden beat Switzerland 5-3 in the preliminary round.