Canada knocked out co-hosts Germany with a 2-1 victory on Thursday to set up a world championship semi-final clash against Russia.
A quick shot by Mark Scheifele gave them a 1-0 lead on the power play in the first period and Jeff Skinner doubled their advantage late in the second period.
Yannic Seidenberg’s late goal for Germany set up a nervous final five minutes but the hosts could not find another one.
Canada, who won the last two editions, will take on Russia on Saturday, who earlier eased past the Czech Republic 3-0.
Recovering from their defeat on Tuesday against the United States, Russia quickly grabbed a two-goal lead thanks to Dmitri Orlov and Nikita Kucherov.
Artemi Panarin sealed their victory with his fourth goal in the competition deep in the third period as Russia avenged last year’s world championship loss to the Czechs in Moscow.
Finland, who will face Sweden, beat the United States 2-0 with a power-play goal from Mikko Rantanen and another from Joonas Kemppainen with 13 minutes left in the third period.
Sweden booked their spot in the last four with a 3-1 win over Switzerland.
(Reporting by Karolos Grohmann; editing by Richard Lough and Toby Davis)