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 scoringsforskjellen 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 26 pucker kastet på mål.
Det er allerede meldt at Tsjekkia slo Norge 2-0 i dagens første gruppespillkamp.
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 har 13 og Canada har 11 poeng, som alle har sikret plass i sluttspillet. Åtte poeng ble samlet av Latvia, fem av Slovakia, fire av Kasakhstan og Norge, men ingen poeng av Slovenia.
Andre leser for tiden
Hjertet kan leve fredelig selv i 100 år! Hva enhver person burde vite om hjertet, men hva de ikke vet, avslører en kardiolog
Hjertet kan leve fredelig selv i 100 år! Hva enhver person burde vite om hjertet, men hva de ikke vet, avslører en kardiolog
VIDEO: En gjeng med mindreårige i Jelgava, på flukt fra politiet, forårsaker en forferdelig ulykke
VIDEO: En gjeng med mindreårige i Jelgava, på flukt fra politiet, forårsaker en forferdelig ulykke
Den savnede skuespilleren Julian Sands kan ha blitt funnet
Den savnede skuespilleren Julian Sands kan ha blitt funnet
«Lidenskapelig spiller. Venn av dyr overalt. Generell alkoholevangelist. Banebryter for sosiale medier. Zombie-nerd.»