Carey Price recorded the shutout, stopping 31 shots to put Canada in the men's hockey final for the fifth time in the last seven Olympics.
The Canadians will be trying for their third gold medal in the last four Games, and will be meeting a Swedish team that reached the championship contest with a 2-1 decision over Finland.
Canada completed a hockey sweep of the United States and will be trying to win all four team medals that were available in Sochi.
In the women's gold medal game Thursday, the Canadians overcame a 2-0 deficit with less than 4 minutes remaining in regulation and eventually won in overtime 3-2. Canada has won both the men's and women's curling gold medals.
Benn, who plays his NHL hockey for the Dallas Stars, scored 1:41 into the second period. Carey, of the Montreal Canadiens, was then called upon to protect the lead.
The only goal came against Jonathan Quick, who made 36 saves.
Sweden, seeking its second men's hockey title in the last three Olympics, fell behind when Olli Jokinen scored 6:17 into the middle stanza. But by the end of the period the Swedes had moved in front to remain unbeaten in the five games they have played in this tournament.
Karlsson's game-winner came on the power play after Jokinen had been called for tripping.
Henrik Lundqvist, who has started every game for Sweden in this year's Olympics, stopped 25-of-26 shots.
Kari Lehtonen made 23 saves for the Finns, who will play for the bronze medal after knocking Russia out of the tournament in the quarterfinals.
Friday's Sweden-Finland contest was a rematch of the gold medal game from 2006, in which the Swedes won their second Olympic title. They also won in Lillehammer 20 years ago.