|XXIII Olympic Winter Games|
|Venue: Pyeongchang, South Korea Dates: 9-25 February|
|Coverage: Watch live on BBC TV, Red Button, Connected TVs, BBC Sport website and mobile app. Full coverage times|
Germany reached the men's ice hockey final at the Winter Olympics for the first time by beating defending champions Canada in the semi-finals.
The 10th-seeded Germans won 4-3 at Gangneung Hockey Centre despite Canada fighting back from 4-1 down at the start of the third period.
Germany will face the Olympic athletes from Russia (OAR) in Sunday's final.
Canada, who have won the last two golds, will face the Czech Republic in the bronze-medal match on Saturday.
"It's unreal to get to play for gold," said German defenceman Frank Hordler.
Germany, who are made up of a domestic league all-star squad, raced into a 3-0 lead midway through the second period with Brooks Macek, Matthias Plachta and Frank Mauer on target.
Gilbert Brule pulled one back for Canada, who were looking to secure a third consecutive final appearance despite the tournament being without NHL talent for the first time since 1994, only for Patrick Hager to restore Germany's advantage with just a period remaining.
Mat Robinson reduced the deficit again for Canada at the start of the third period before Germany's Dominik Kahun saw his penalty shot saved by Canada goaltender Kevin Poulin.
Canada took advantage through Derek Roy with just over 10 minutes remaining, but Germany held on to seal a famous victory which BBC TV commentator Seth Bennett labelled "one of the biggest upsets in Winter Olympic history".
Germany are assured of their best Olympic ice hockey result with their only previous medal being bronze in 1932, plus there was a bronze for West Germany in 1976.
"It gives me goosebumps," said Germany forward Hager.
Earlier, OAR reached the final for the first time in 20 years with a 3-0 win over the Czech Republic.
Nikita Gusev and Vladislav Gavrikov struck within 27 seconds in the second period, and Ilya Kovalchuk scored into an empty net with 21 seconds left.