World champions Canada staged a sensational third period comeback to beat Russia 4-2 on Saturday. They will play Sweden for a third straight title in Sunday's final.
With all of their goals coming in the third period, the Canadians completed a memorable win after looking down and out.
The Russians, who lost to Canada in the 2015 final, were cruising as Artemi Panarin, the tournament leader for assists, sensationally picked out Yevgeni Kuznetsov, who was left unmarked at the side of the Canadian net, to put them ahead.
Nikita Gusev doubled the lead on the power play before Canada started their fightback with a goal from Mark Scheifele 17 seconds into the third period.
Nate MacKinnon drew the Canadians level and Ryan O'Reilly put them in front with three minutes left before Sean Couturier bagged another to seal the victory in style.
The Canadians now take on 2013 champions Sweden, who eased past Finland 4-1 to reach their first final in four years.
"That was a pretty special game, the way it all played out being down a couple," said Canada defenceman Colton Parayko. "Credit to them. They scored some nice goals early on. But credit to us as well for sticking to the game plan."
"It is pretty special to be playing for gold tomorrow. It gives you chills, goosebumps when you think about it."