Tournament co-hosts Sweden made it four wins on the trot as they brushed aside Germany 5-2 in front of a sold-out Globen Arena in Stockholm. The Swedes managed 40 shots in the game, limiting the Germans to only 17.
But despite the victory and the defensive performance, Sweden's general manager Johan Garplov told TV4: "I'm very happy with 5-2, but we can play a lot better than this."
After jumping into an early lead through Damien Brunner, the Swiss set about stifling the Canadian attack but despite few clear chances Jordan Eberle managed an equaliser in the second period.
Eberle struck again 41 seconds into the third period to give Canada the upper hand only for Switzerland to fire a power-play goal to make it 2-2, before Getzlaf poached the winner for the Canadians.
In Group H, Slovakia beat Kazakhstan 4-2 helped by two goals from Florida Panthers centre Tomas Kopecky.
Italy suffered another heavy defeat in Group S in Stockholm as Norway fired two goals in each period en route to a 6-2 victory.