Dylan Cozens a marqué au premier tiers, puis Kristian Pospisil a riposté en période médiane.
Au troisième tiers, le Canada a pris le contrôle avec quatre buts en 7:07.
Vilardi, John Tavares, Ryan O’Reilly et Macklin Celebrini ont alors donné une nouvelle allure au match, alors que l’unifolié est resté invaincu en six matches dans le groupe B (le pays mène le groupe avec 17 points).
«C’était comme un match de la Ligue nationale, avec des bonnes mises en échec, a commenté le défenseur canadien Darnell Nurse, cité par le site Internet du tournoi. Les Slovaques ont joué avec intensité, et je pense que nous pouvons nous attendre à la même chose à notre prochain match (contre la Tchéquie). Nous avons bien hâte.»
Cozens a converti une semi-échappée, après avoir saisi une longue passe en lob de Sidney Crosby.
Vilardi a profité d’une rondelle libre, à la suite d’efforts de Tavares et Robert Thomas.
Tavares a marqué du revers grâce à une remise d’O’Reilly, en provenance de l’arrière du filet.
O’Reilly a complété une montée d’Evan Bouchard, en désavantage numérique.
Bouchard a eu 21:08 de temps de glace, un sommet dans la rencontre.
Celebrini a couronné la poussée avec un tir des poignets, du haut de l’enclave.
«Nous avons créé beaucoup d’occasions et nous avons récolté les fruits en troisième période, a dit Nurse. Plusieurs équipes sont pas mal solides en défense mais parfois, il suffit d’un but et ça fait boule de neige.»
Le Canada va conclure la phase préliminaire mardi, face aux Tchèques.
Les quarts de finale commenceront jeudi en vue des matches de médailles, qui auront lieu dimanche prochain.
