Kanadas Angus MacDonell gjorde 2-1 14.07 in i den första perioden.
Men efter det var det Sveriges match.
David Edstrom kvitterade till 2-2 bara sekunder senare och i andra perioden drog Småkronorna ifrån till 6-2.
Otto Stenberg och David Edstrom gjorde två mål var i matchen som slutade 7-2.
Två svenska spelare drog på sig matchstraff. I slutet av första perioden huvudtacklade Noel Nordh Kanadas målvakt Carson Bjarnason (som fick bryta matchen i paus) och i slutet av den andra perioden åkte Tom Willander ut fem minuter för slashing.
För Sverige var det andra storsegern mot Kanada i mästerskapet då man vann med 8-0 i gruppspelet.
Sverige möter USA i finalen i morgon, vilket betyder att det blir en repris av fjolårets final. Den gången vann Sverige.
Matchen startar 19.00 och sänds i SVT Play.
KLIPP: Se Noel Nordhs huvudtackling på målvakten: