Le , il joue son premier match dans la Ligue nationale de hockey et il inscrit le son premier point en LNH face aux Bruins de Boston. Le , il marque son premier but en carrière face à Boston, en play-off. À la suite de l'élimination du Canadien et de son club école, les Bulldogs de Hamilton, il est appelé par le sélectionneur national Ralph Krueger pour disputer les Championnats du monde avec la Suisse.
Le , à la suite des blessures de Ryan O'Byrne et d'Andreï Markov, Yannick Weber est rappelé des Bulldogs de Hamilton afin de se joindre aux Canadiens de Montréal[2]. Il dispute les Jeux olympiques de 2010 au mois de février.
Lors de la saison 2010-2011, il réussit à s'imposer au sein des Canadiens de Montréal grâce à son excellent début de saison à Hamilton - 8 buts en 15 rencontres - et aux blessures d'Andreï Markov et de Jaroslav Špaček. Il inscrit le son premier but en saison régulière. Lors du deuxième match des séries éliminatoires, appelé en dernière minute pour remplacer Andreï Kastsitsyne à l'aile gauche[3] - alors qu'il est défenseur - il marque le 3-1 de son équipe face aux Bruins. Il récidive quelques jours plus tard lors du septième acte de la série. Ainsi, les quatre premiers buts de sa carrière ont été inscrits contre le portier Timothy Thomas[4]. Appelé après l'élimination de son équipe pour disputer le championnat du monde 2011, il refuse en raison de la volonté du sélectionneur Sean Simpson de le faire jouer à l'attaque[5]. Après qu'une place se libère en défense à la suite de la blessure de Goran Bezina lors de la troisième rencontre, il refuse une nouvelle fois l'invitation[6].
Le , il signe un nouveau contrat avec les Canucks de Vancouver pour une saison et un salaire de 1,5 million de dollars[7].