After falling behind 4-1, Canada pushed hard in the third period, cutting the gap to a single goal, but Germany held on even as the Canadians pulled their goaltender with a little over a minute left in regulation.
Canada will now play the Czech Republic for the bronze on Saturday while the Germans get ready to take on Russia in Sunday's gold medal game.
Germany didn't even qualify for the last Olympics, and won its only other medal in 1976, as West Germany. Canada, two-time defending champs, have 15 medals to boast of: nine gold, four silver and two bronze.
However, with fewer than 10 Germans playing in North America, the absence of NHL'ers has certainly hurt Germany less than others.