Undefeated Switzerland outshot USA 18-9 in the first period on Saturday, making the American team's 19-year-old goalkeeper John Gibson the busiest player on the ice of Globe arena.
The teenager initially stopped and deflected all the pucks shot at him.
But he was unable to prevent an opening goal by Nino Niederreiter who sent the puck into the back of the net with an unopposed close-range shot halfway into the second period on Martin Pluss' feeding short cross.
Julian Walker scored Switzerland's second goal with 9 minutes and 49 seconds to go on a breakaway beating Gibson with a powerful close-range slap shot.
USA team head coach Joe Sacco also substituted Gibson for the sixth field player to give Switzerland's forward Reto Suri an opportunity for an empty-netter with 19 seconds remaining to send his squad into their first ever world championship's final.
Swiss 'keeper Reto Berra made 29 saves to record a shutout.
"It's a great win, not only for our ice hockey but for all Switzerland's sport," Swiss federation president Ueli Maurer told AFP.
"It will be our first gold medal match in major (team) sports but I very much hope it will not be the last one."
Sweden's Dallas Stars left winger Loui Eriksson scored two goals and an assist, while goalkeeper Jhonas Enroth produced 30 saves in the team's win over Finland.
The result kept alive the Swedes' hopes of becoming the first team to win the gold medal on home ice since the former Soviet Union did it in 1986.
"We had a tough opponent," Swedish manager Par Marts said.
"Finland are a defensively well-organized team," Marts said.
"It's hard to beat them, but we found a way," he said.
"We played a good game, but we need to play better and we can play better."
Marts said the team had added pressure playing on home ice.
"We were under pressure as everybody here expected nothing less than the win from us," he said.
"But I think we played a good game today and deservedly got a place in the final."
Sweden opened the score a little more than into the match on a powerplay through Vancouver Canucks center Henrik Sedin, who sent the puck into the net with the help of a ricochet off Eriksson, credited as the scorer.
The Finns poured into attack and began peppering Enroth with shots as they sought an equaliser but to no avail as the Buffalo Sabres netminder kept a clean sheet.
Eriksson made it 2-0 for Sweden with seconds remaining in the second period, firing the puck under the crossbar from Henrik Sedin's pass from behind the goal line when Finland's forward Petri Kontiola was in the sin bin.
Finland coach Jukka Jalonen substituted goalie Antti Raanta for a sixth outfield player with time running down, only to allow Henrik Sedin to score an empty-netter with 23 seconds left in the game to secure the Swedes' well-deserved win.
"I think we played pretty well today," said Jalonen.
"We had the same amount of scoring chances, but we didn't put the puck into the net and if you don't score you don't win."