Kanadensaren fick två minuters utvisning för ”obstruktion” efter att Sam Bennett kolliderade med den finske målvakten Juuse Saros inne i den finska rutan.
Sedan gjorde Mikko Rantanen ett högerinlägg och Finland utnyttjade sitt numerära övertag till 1-0. Finland förbättrade sig även i den andra perioden genom Erik Haula.
De finska lejonen var på väg att chocka Kanada och hela hockeyvärlden.
Men sedan bytte Kanadas globala stjärnor.
Connor McDavid assisterade Sam Reinhart till 2-1. Sedan, med 10 minuter kvar, gjorde Shea Theodore ett långt skott.
Men matchens avgörande ögonblick kom med drygt två minuter kvar när Niko Mikkola blev utvisad för en hög sticka. Som ett resultat stal Kanada maktspelet och knuffade Finland, som nästan höll kvar.
Tills nästa stjärna, Nathan MacKinnon, kom på oavgjort för Kanada med 36 sekunder kvar.
– Vi hade en jättebra, jättebra match. De fick en bra start men vi fortsatte och förtjänade vinsten, sa McKinnon till SVT Sport.
Se klippet av det avgörande målet.
Efter att finska spelare protesterat offside gick den kanadensiske domaren för att se vad som hade hänt, men målet bekräftades efter en genomgång och jubel utbröt från den rödvita delen av stadion.
– När man ska försvara som man ska i 40 minuter brukar det inte hålla i sig, sa Mikko Rantanen efter förlusten.
Kanada slutade på sista plats och letar efter sin 17:e olympiska hockeymedalj och 10:e guldmedalj.
Finalen hålls på söndag klockan 14.00. Amerika eller Slovakien kommer att vänta där. Den semifinalen sänds i kväll i SVT, med matchstart 21.10.
Texten kommer att uppdateras.
