Canada was cruising this year after winning all of its group games and eliminating the defending champion United States in the quarterfinals.
But the Canadians, champions last in 2023, will have to settle for Sunday’s bronze medal game against underdog Norway.
Captain Aleksander Barkov and Konsta Helenius led Finland with a goal and an assist each, Mikael Granlund had two assists, and goaltender Justus Annunen stopped 28 shots.
Down 2-1 after the opening 20 minutes, Finland rallied in the three-goal second period when it outshot Canada, 10-3. Barkov started the rally 49 seconds in to tie it at 2 from close range.
The Florida Panthers center who missed the entire season due to an injury has three goals and eight assists in the tournament.
Finnish center Aleksander Barkov battles through stickchecks by Canada’s Ryan O’Reilly (right) and John Tavares (left) during Saturday’s IIHF Ice Hockey Men’s World Championship semifinal in Zurich.FABRICE COFFRINI/AFP via Getty ImagesFinland built the lead with a couple of goals 1:22 apart. Helenius gave the Finns a 3-2 advantage on a breakaway, and Aatu Raty knocked in a loose puck to make it 4-2.
Canada had goals from Robert Thomas and Dylan Holloway, and netminder Jet Greaves made 17 saves.
In the opening period, Thomas tied it at 1-1 for Canada, netting the puck that bounced off Holloway’s body 8:17 in.
Patrik Puistola gave Finland a 1-0 lead with a shot from the right circle after a turnover 3:30 into the game.
Celebrini set up Holloway with a backhand lob to put Canada 2-1 up with 5:34 remaining.
Canada pulled Greaves with 2:43 left but Finland held firm.
Earlier, Switzerland blanked Norway, 6-0, to advance to the final for the third straight year. Goaltender Leonardo Genoni made 20 saves in the shutout.
Switzerland finished second in the previous two worlds and wants more in front of constantly roaring, singing, and jumping fans who have repeatedly sold out Swiss Life Arena.
Christoph Bertschy skated from behind the net to the left circle before turning around and shooting the opener past goaltender Henrik Haukeland with 2:24 to go in the opening period.
Denis Malgin added the second on an odd-man rush early in the second. Ken Jager made it 3-0, and Damien Riat netted on a power play for 4-0 lead in the middle period.
New Jersey Devils captain Nico Hischier scored on another play in the third period, and Theo Rochette completed the rout.
Sven Andrighetto registered two assists and tops the scoring table with 15 points from nine games.
Switzerland missed Devils forward Timo Meier, who was suspended for one game by the world championship disciplinary panel for kneeing Oskar Sundqvist in the semifinal against Sweden.
