Sweden outshot Canada 14-5 in the first period to race into a 3-0 lead with goals from Anton Lander, Victor Rask and Filip Forsberg. Canada though came back strongly and outshot Sweden 19-9 in the second period to level the scores 3-3 before Oscar Möller restored the Swedish lead with 4:41 remaining in the second.
Patrick Wiercioch tied it for Canada at 4-4 midway through the third. Tyler Ennis scored from a power play for Canada's winner with 6:29 left in the final period and Tyler Seguin added the sixth into an empty net with 1:50 to go.
"Obviously, our first period was good," Filip Forsberg, Sweden's Nashille Predators forward who has five goals at the worlds, told AFP. "After that we kind of sat back too much, let them come and attack. That was the biggest thing. They're a good team, but so are we. It was a good game."
Tre Kronor play Germany on Thursday evening.