Underläge och utvisningar satte press på Tre Kronor men laget fick jubla i Bolsjoj-palatset.
Finnkampen blev en thriller med ett lyckligt blågult slut.
Olli Jokinens mål, 6,17 in i den andra perioden, kändes som en snyting men sänkte inte Sverige.
– Målet får jag ta på mig, säger Henrik Lundqvist till Viasat.
Målvakten lyckades inte att täppa till helt vid första stolpen och pucken ramlade ned över mållinjen.
– Jag är glad att jag tog mig samman och inte lät det störa min koncentration, fortsätter "Henke" som svarade för en klockren insats om vi bortser från målet.
Sverige var illa ute när finnarna fick spela fem mot tre men då visade Lundqvist sin klass med ett par högoktaniga ingripanden.
Jonathan Ericsson som var inne på Finlands mål tog en gruvlig revansch. Hans smarta passning till Loui Eriksson öppnade för kvitteringen.
Sverige var tillbaka i semifinalen och fem minuter efter 1–1-målet så slog Erik Karlsson till igen.
I power play drog Sveriges backstjärna till med sitt fruktade skott och Kari Lehtonen som ersatte en sjuk Tuukka Rask kunde inte parera.
0–1 hade blivit 2–1 inför den tredje perioden – som slutade mållös. Sverige spelade disciplinerat, smart och höll undan.
Det blir OS-final på söndag (mot USA eller Kanada avgörs under fredagskvällen).
– I kväll ska vi njuta. Jag tror att vi måste upp ett snäpp, vi kommer att möta ett bättre lag på söndag, säger Henrik Lundqvist.
Matchhjälten Erik Karlsson som nu toppar OS poängliga med åtta poäng:
– Det blir en väldigt tuff match, oavsett vilka vi spelar emot. Det är hugget som stucket för oss. Det är två lag som spelar en liknande hockey.