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 scoringen i det 53. minutt, men Michael Karkone tok igjen et mål i det 57. minutt.
På vinnermålet blokkerte Leonardo Genoni 27 av Canadas skudd, og over feltet blokkerte Samuel Montebolt 23 av de 26 puckene som ble kastet mot målet hans.
Tsjekkia skal ha slått Norge 2-0 i dagens første gruppespillkamp.
Fremdeles 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 poeng, og Canada 11 poeng, som allerede har sikret plass i sluttspillet. Åtte poeng ble samlet av Latvia, fem poeng av Slovakia, fire poeng av Kasakhstan og Norge, men ingen poeng ble scoret av Slovenia.
Andre leser
«Han har ikke vært på jobb siden fredag,» en mann forsvant med bilen sin i Riga
«Han har ikke vært på jobb siden fredag,» en mann forsvant med bilen sin i Riga
Den ukrainske marinen avslørte at Krim-broen definitivt vil bli ødelagt og annonserte tidspunktet
Den ukrainske marinen avslørte at Krim-broen definitivt vil bli ødelagt og annonserte tidspunktet
BILDER, VIDEOER: Elita Patmalnieces personlige utstilling «Flukten mellom lys og mørke» åpner i en lys atmosfære
BILDER, VIDEOER: Elita Patmalnieces personlige utstilling «Flukten mellom lys og mørke» åpner i en lys atmosfære