Canada will have a chance to play for a third straight IIHF World Hockey Championship gold medal, but earning that right wasn't easy.
The Canadians trailed Russia 2-0 heading into the third period, but scored four goals in the final 20 minutes en route to a 4-2 semi-final win.
Mark Scheifele started the come back with a goal 17 seconds into the third period, his third of the tournament and second in as many games. Scheifele finished with 14:42 of ice time and was named one of Canada's top three players in the tournament after the game (along with Mitch Marner and Ryan O'Reilly).
Josh Morrissey played a big role in Canada's go ahead goal in the third period, and had four shots on goal of his own in 11:23 of ice time.
Things didn't start out easy, as Canada had to kill three straight minor penalties, but the stingy defence finally broke in the second period. Dmitri Orlov skated the puck into the Canadian zone and dropped it for Nikita Kucherov, who dished off to Artemi Panarin, and the Chicago Blackhawks forward found Yevgeni Kuznetsov by himself off the far post for the tap in.
The Russian power play struck minutes later. With Wayne Simmonds off for slashing, Panarin led a rush up the ice and passed off to Vadim Shipachyov, who went cross-ice to Nikita Gusev, and his shot beat Calvin Pickard to put the Russians up 2-0.
Scheifele started the come back effort with a power play goal of his own 17 seconds into the third. Colton Parayko found Nathan MacKinnon at the top of the circle. MacKinnon wasted no time connecting with Scheifele for the high tip, whose deflection beat Vasilevskiy on the glove side to get Canada within one.
MacKinnon pulled Canada to even terms late in the period. Off the cycle, Travis Konecny centred the puck to MacKinnon, who outworked a Russian defender in front of the net, and slid his sixth - and biggest goal of the tournament so far - past Vasilevskiy to even things up with less than five minutes to go in regulation.
With 3:02 to go, Canada completed the come back. Josh Morrissey pinched in the Russian zone to keep the play alive, the puck found its way to Michael Matheson, who played it in front to Ryan O'Reilly. After O'Reilly lost control, the puck bounced off the leg of Ivan Provorov, and back to O'Reilly who was just off the post to bury it, giving Canada its first lead of the game.
Sean Couturier would seal the comeback with an empty netter, as O'Reilly found the Philadelphia Flyers forward in the neutral zone after Colton Parayko forced a turnover in the Canadian zone.
Canada now awaits the winner of the other semi-final match up between Sweden and Finland.