A second period four-goal burst saw Sweden trounce the Czech Republic 7-3 to set up a clash with their old rivals Finland in Sunday's final.
Tomas Holmstrom (centre) was one of seven different Swedish scorers
It is the first time the Swedes have made the gold medal match since their 1994 Olympic triumph in Lillehammer.
Frederik Modin, Per Johan Axelsson, Henrik Sedin, Christian Backman, Jorgen Jonsson, Daniel Alfredsson and Tomas Holmstrom all netted for the Swedes.
Finland booked their place by thumping Russia 4-0 in their semi-final.
Antero Niitymaki made 21 saves in Finland's shutout, while Ville Peltonen, Toni Lydman, Saku Koivu and Olli Jokinen all netted.
It was the Finns seventh straight win and sets up an intriguing all-Nordic final.
But Sweden's win has already gone a long way to erasing the disappointment of their quarter-final exit in Salt Lake City four years ago.
Swedish captain Mats Sundin said: "We played our best game of the tournament so far.
"If we can play like that again on Sunday we'll have a good chance in the final."