Germany have pulled off a stunning upset by defeating two-time defending champions Canada 4-3 in their semi-final.
The Germans – who failed to qualify for Sochi 2014 – will now contest their first ever Olympic final.
They face Olympic Athletes from Russia on Sunday.
OAR booked their place by beating a battling Czech Republic side 3-0.
Macek makes his mark
Germany took the lead on a two-man power play in the first period.
A beautifully taken shot from Brooks Macek broke the deadlock after 14:43 against the country of his birth.
Canada had three power plays in the opening period but failed to take advantage.
The Germans went two-up just over three minutes into the second period.
Matthias Plachta got ahead of his marker and fired past Kevin Poulin.
And a big upset was brewing when Frank Mauer flicked the puck through Poulin’s legs for 3-0 three minutes later.
Gilbert Brule pulled a goal back for Canada but Patrick Hager restored the three-goal lead.
The Canadians revived their hopes at the start of the third when Mat Robinson was left wide open to score 2:42 in.
Germany were then awarded a penalty shot for a Cody Goloubef trip.
But Dominik Kahun’s effort was easily saved by Poulin.
And German nerves really began to tremble when Derek Roy reduced the deficit to a single goal with 10:18 left on the clock.
All out attack
Canada went all-out attack – even removing their goaltender with more than two minutes remaining.
But Germany held firm for a famous victory.
Canada’s unbeaten run through Vancouver 2010 and Sochi 2014 has drawn to a close.
Germany are now guaranteed their first Olympic medal in men’s ice hockey since bronze way back at Innsbruck 1976.
The only question remaining is: will it be silver or gold?
OAR 3-0 Czech Republic
Earlier in the day, the Olympic Athletes from Russia booked their spot in the final with a 3-0 win over the Czech Republic.
The scoreline suggested a comfortable victory against a previously unbeaten Czech side, but in reality it was anything but.
After a goalless opening period, Nikita Gusev and Vladislav Gavrikov scored in quick succession in the second to put OAR on their way.
Ilya Kovalchuk then added the third into an empty net with 20 seconds of the game remaining.
The Czech Republic though relentlessly tested the OAR backline throughout.
However, they found OAR goaltender Vasili Koshechkin an impenetrable barrier – he stopped 31 shots to shut the Czechs out.
“It was a very tense game. Everybody was afraid of making mistakes so scoring first was important, of course,” said OAR captain Pavel Datysuk afterwards.