Switzerland stunned title favourite Canada 3-2 to reach only its third final of the world ice hockey championship on Saturday.

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.

Gaetan Haas scored the eventual game winner, and Leonardo Genoni made 43 saves, as Switzerland edged Canada 3-2 to advance to the gold medal game against Sweden. 1:53

"We obviously got motivated a lot playing them," Switzerland defenceman 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 defenceman 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. "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.

Swedes steamroll Americans

In the earlier semifinal, the defending champion Swedes set up their 6-0 victory with three goals in three minutes against the U.S. and seven seconds midway through the second period.

"We didn't play our best game but we put up a lot of goals," forward Patric Hornqvist said. "We still have some improvement to do for the game tomorrow."

Sweden is going for a third world title in six years.

Viktor Arvidsson scored two goals and goaltender Anders Nilsson made 41 saves as Sweden shutout the United States 6-0 to advance to the gold medal game. 1:05

Viktor Arvidsson led Sweden with two goals and goaltender Anders Nilsson made 41 shots for the shutout.

Trailing 1-0 in the second, the U.S. had a four-minute power play but allowed a short-handed goal by Magnus Paajarvi, who scored on a rebound after goaltender Keith Kinkaid stopped Mikael Backlund on a breakaway.

Hornqvist stretched the lead to 3-0 on a power play, and Sweden underlined its control when Mattias Janmark made it 4-0 just 11 seconds later.

Arvidsson added his second into an empty net in the final period, and Adrian Kempe finished it off with the sixth. Sweden earned its ninth win from nine games in this championship.

The U.S. pressured in the opening period, outshooting Sweden 16-8 and 41-19 overall. But it was the Swedes who went ahead. Arvidsson knocked in a loose puck in the crease following a shot from above the right circle by Filip Forsberg.

U.S. captain Patrick Kane, the overall scoring leader, failed to register a point for the first time in the championship.

"We just made too many mistakes and they capitalized," Kane said. "They've got a lot of good players over there and made us pay for those mistakes.

"It's gonna be tough to regroup [for the bronze medal game] ... but we have to do it."