Den första perioden slutade mållös trots att både Kanada och Ryssland hade fina lägen att göra mål.
Såväl Calvin Pickard som Andrei Vasilievski gjorde fina perioder. Skotten slutade 11-7 i rysk favör.
Det var också Ryssland som öppnade målskyttet i den första perioden.
Ryssland hade precis klarat av ett numerärt underläge då Nikita Kucherov drev in pucken i anfallszon på högerkanten. Kucherov hittade Artemi Panarin på den vänstra sidan som i sin tur spelade över pucken till Yevgeni Kuznetsov som vid bortre stolpen hade helt öppet mål.
Två och en halv minut senare var det dags för ett nytt ryskt klapp-klapp-mål, i stort sett en spegelvänd kopia av 1-0-målet.
Den här gången var det Nikita Gusev som fick öppet mål och fick in pucken via sitt eget ben och Calvin Pickard i Kanadamålet.
Kanada inledde den tredje perioden med spel i fem mot fyra efter det att Artyom Zub utvisats för en slashing i slutet av den andra.
Det tog bara 17 sekunder innan reduceringen genom Mark Scheifele som styrde in en fin skottpassning från Nate MacKinnon.
Det var powerplay-expertens tredje fullträff i VM och Kanada hade fått en perfekt öppning på den tredje perioden.
Ryssland drog efter 1-2-målet på sig tre raka utvisningar och Kanada tryckte på för en kvittering.
Efter 15:07 utjämnade Kanada genom Nate MacKinnon som fick två chanser att försöka svepa in en puck mellan tekningscirklarna. Pucken gick in under Andrei Vasilievski.
Efter 16:58 i den tredje perioden fullbordade Kanade sin vändning.
Ryan O´Reilly fick pucken lite slumpartat framför Vasilievski och tryckte in pucken.
- Jag hade lite tur. Jag såg vad som höll på att hända och tog mig in på målet, säger O´Reilly i Cmore. Jag missade det första avslutet, men kunde trycka in pucken på det andra försöket.
Men dryga minuten fastställde Sean Couturier slutresultatet 4-2 i öppen kasse.
Kanada visade en otrolig lagmoral i den tredje perioden då man vann skotten med 19-5 och gjorde 4-0 på Ryssarna som fram till den tredje perioden varit det starkare laget.
Kanada är i final igen och har chansen att ta sitt tredje raka VM-guld. I guldmatchen väntar antingen Sverige eller Finland som möts i senare under lördagskvällen.
- Det ska bli spännande, säger O´Reilly. När vi hjälper varandra på isen och gör det vi ska är vi effektiva och får med oss marginalerna. Vi ser fram emot finalen, avslutar Ryan O´Reilly.