I det 30. minutt førte Tyler Toffoli Canada foran, men Nico Hischier og Dario Simion sørget for 2:1 for Sveits.
Andres Anbil doblet forskjellen i scoringen i det 53. minutt, men Michael Karkone tok igjen et mål i det 57. minutt.
I vinnermålet blokkerte Leonardo Genoni 27 kanadiske skudd, mens i den andre enden av banen blokkerte Samuel Montebolt 23 av de 26 puckene som ble kastet mot målet hans.
Det ble tidligere meldt at Tsjekkia slo Norge 2-0 i dagens første gruppespill.
Også i dag i Riga starter kampen Latvia-Kasakhstan klokken 20.20.
Etter fem runder med kamper i gruppe B har Sveits 15 poeng, Tsjekkia 13 og Canada 11 poeng, noe som allerede sikrer dem en plass i sluttspillet. Åtte poeng ble samlet av Latvia, fem av Slovakia, fire av Kasakhstan og Norge, men ingen poeng ble scoret av Slovenia.
Andre leser for tiden
Vil du sove godt om natten og våkne opp om morgenen med godt humør? Her er en oppskrift på det
Vil du sove godt om natten og våkne opp om morgenen med godt humør? Her er en oppskrift på det
BILDER, VIDEOER: følelsesladet, spennende og forent. Mer enn 17 000 mennesker danser «Perpetual Engine»
BILDER, VIDEOER: følelsesladet, spennende og forent. Mer enn 17 000 mennesker danser «Perpetual Engine»
VIDEO: når dans forener og skaper kjærlighet. Etter den store forestillingen er det forslag, og hun sa ja!
VIDEO: når dans forener og skaper kjærlighet. Etter den store forestillingen er det forslag, og hun sa ja!