GANGNEUNG, Korea, Republic Of -- With the NHL stars absent, Team Canada's vagabond roster knew opportunity was knocking at the Pyeongchang Olympics.

On Friday, with the gold-medal game beckoning, the Canadian men were late answering the call in a 4-3 semifinal loss to unheralded Germany.

A slow start in the first period coupled with some ill discipline in the second cost the Canadians dearly. Canada trailed 3-0 midway through a penalty-filed second period. Down 4-1 after 40 minutes, the Canadians finally woke up and pushed back hard in a third period that saw them outshoot the Germans 15-1.

But as one player after another acknowledged, it was too little too late.

Defenceman Mat Robinson, who started the third-period comeback with a goal at 2:42, said the tournament had not seen the best of Canada.

"I don't think so. I think we could have won gold," he said. "So we're still not happy with the outcome and never will be."

Canada will play the Czech Republic for the bronze medal Saturday while the Germans go for gold Sunday against the entry from Russia. The Russians blanked the Czech Republic 3-0 in the earlier semifinal.

The Czechs beat Canada 3-2 in a shootout in preliminary-round play.

Germany continued its miracle run, booking an unlikely ticket to the gold-medal game after adding Team Canada to an upset list that already included Switzerland and Sweden.

"I don't know how to describe it right now. It's unreal," said German captain Marcel Goc. "I'm still waiting to get poked and somebody wakes me up and tells me, 'Hey you're late for the bus to the game.'

"But the game's over. We made it to the finals. This is unreal."

It was only Germany's second victory in 30 meetings with Canada in Olympic and world championship play. The first was a 5-1 win at the 1996 world championships. The Canadian men had won the last 11 meetings, outscoring the Germans 58-15, and had gone 11-0-1 against the Germans since the 1996 defeat.

As the Germans rushed off the bench to celebrate, Canadian players hung their heads. More than a few raced through the post-game mixed zone, refusing to speak.

Winnipeg-born Brooks Macek, Matthias Plachta, Frank Mauer and Patrick Hager scored for 10th-seeded Germany.

Gilbert Brule and Derek Roy also scored for Canada.

Robinson's goal, capping a two-on-one with a nifty backhand, cut the deficit to 4-2. Goaltender Kevin Poulin then did his part, stopping a Dominik Kahun penalty shot at 3:21 after a diving Cody Goloubef took down an onrushing German.

Roy made it 4-3 at 9:42 on the power play, sending a shot in from the side that hit a body in front and beat German goalie Danny aus den Birken. But ultimately Canada could not reel Germany in.

The Germans were full value for the win despite the third-period wobble. For the first 40 minutes, they were efficient, well-organized and opportunistic with two power-play goals. Canada was late coming to this party.

"It's as disappointing as it gets right there," said Robinson. "A tough loss for us and we let our country down today. It's a tough pill to swallow."

"We shot ourselves in the foot in the beginning of the game and we weren't able to come back from it," he added.

Canada outshot the Germans 31-15.

"We're upset, we're disappointed," said captain Chris Kelly. "Give them credit. They were the better team for the first 40 minutes. They capitalized on their opportunities. I thought we had a good push there the last 20 but we dug ourselves too deep of a hole, I guess."

The Germans, who didn't even qualify for the last games, won their only other Olympic hockey medals -- both bronze -- as West Germany in 1976 and Germany in 1932. Canada, two-time defending champion, arrived in Pyeongchang with 15 men's hockey medals -- nine gold, four silver and two bronze.

But with fewer than 10 Germans in the NHL, the absence of the NHLers has not hurt the Germans as much as most.

Canada won 2-1 the last time the two teams met, in the 2017 world championship quarterfinals. Only defenceman Chris Lee returns from that Canadian team, which was filled with NHLers. The Germans have 14 returnees.

Once again there were empty seats at the 10,000-capacity Gangneung Hockey Centre. Those Canadians who were there were silenced by the three-goal German outburst in the second.

Poulin got the start in goal for Canada with Ben Scrivens still nursing a shoulder injury that knocked him out of the 1-0 quarterfinal win over Finland. Poulin, who started the final preliminary-round game against South Korea, came into Friday's game having stopped all 34 shots he had faced at the tournament.

The Germans came as advertised, cool under pressure. But Felix Schutz lost the plot at 12:29 of the first period, dumping defenceman Maxim Noreau into the boards face first. Noreau got some facial repairs as coach Willie Desjardins argued unsuccessfully for more severe justice.

A Linden Vey high-sticking call negated the power play and Canada eventually found itself facing a five-on-three when it was called for delay of game on a faceoff violation. Macek made the Canadians pay with a wrist shot through Robinson and past Poulin's stick side from the faceoff circle at 14:43.

It was a wide-open second period with three goals in less than five minutes.

Plachta made it 2-0 at 3:21 of the second period as Germany took advantage of a defensive miscue. Both Canadian defencemen were drawn to the onrushing Hager, who slipped a pass to an unmarked Plachta as Brule struggled to catch him. Plachta beat Poulin with a high shot from in-close.

Germany scored again at 6:49 with a David Wolf stretch pass finding Goc. Digging Goc's pass out from between his legs, Mauer beat Poulin from in front. Canada answered with a Brule one-timer from the faceoff circle on the power play at 8:17, off a feed from Lee.

But Germany restored its three-goal advantage on the power play when a point shot bounced in off Hager's stick shaft at 12:31. Things went from bad to worse 28 seconds later when Brule was given a five-minute major and game misconduct for a check to the head that floored Wolf at centre ice.

Canada managed to kill off the major penalty but its offence was shelved in the process.

"It seemed like everything they shot went in early," said Desjardins.

"I'm disappointed for sure," he added. "It's a tough loss. It's a game that you can win. You can't afford to lose games like that."

All 25 Germans play in their national league, the DEL. Defenceman Christian Ehrhoff and Goc played a combined 1,425 games in the NHL.

According to the International Ice Hockey Federation, there were 20,646 registered hockey players in Germany in 2017. The number in Canada was 631,295.