Charles fa il suo debutto ai campionati del mondo Junior nel 2002, finendo quarto nella distanza dei 1000 metri, e aiutando la squadra ad arrivare seconda nella staffetta. Nel corso del successivo mondiale Junior nel 2003, arriva secondo nei 500 m, secondo nei 1500 m, 4º nei 1000 m, 5º nella super finale 1500 m, e terzo nella staffetta 5000 m. Finì la gara quarto assoluto. Stava apparentemente seguendo le orme di una lunga serie di affermati franco-canadesi come Marc Gagnon e Éric Bédard.
Torino 2006
In vista dei Giochi olimpici di Torino 2006, Charles fece il suo debutto in Coppa del Mondo nella stagione 2003-2004. Il suo ruolo principale della squadra in quel momento era nella staffetta che ha chiuso la stagione al secondo posto assoluto. Ai campionati del mondo 2004 però, la staffetta arrivò solo quarta.
La stagione 2004-2005 è stata la prima in cui ha pattinato ogni evento della Coppa del Mondo. Ha concluso terzo assoluto nei 500 m, 4º nei 1000 m, 5º nei 1500 m, e 5º assoluto della stagione. La staffetta vinse, e quindi divenne campione del mondo. Il vero successo sarebbe arrivato ai Campionati del Mondo 2005. Ha vinto un argento nei 500 metri e due quarti posti rispettivamente nei 1000 e 3000 m. Questo gli ha permesso di finire quarto posto assoluto in classifica.
Durante le Olimpiadi invernali del 2006, Hamelin è riuscito a qualificarsi per la finale del 1500 m. Arrivò solo quarto, dietro a due coreani e a due cinesi. Nella staffetta 5000 m, il Canada chiude secondo dietro ad una sorprendente corea. La medaglia d'argento nella staffetta era la sua prima medaglia olimpica della carriera.
Dopo le Olimpiadi Charles vince la medaglia d'oro nei 3000 metri ai Campionati del Mondo. Nel 2007 diviene campione del mondo sulla distanza dei 500 m, diventando quest'ultima la sua distanza prediletta. Nel 2008 vince l'argento mentre nel 2009 diviene nuovamente campione del mondo sulla sua distanza.
Vancouver 2010
Ai Giochi olimpici di Vancouver 2010, Charles ha gareggiato in tutte le distanze, arrivando come campione del mondo nei 500 m, era quindi uno dei favoriti per la vittoria di questa medaglia.
Nei 1500 m, Charles passa in semi finale, per solo 0.001 secondi di vantaggio sul cinese Liang Wenhao. La semi finale per lui è molto complicata, trovandosi con due dei favoriti all'oro (Apolo Ohno e Lee-Jung Su). Chiude la batteria terzo, qualificandosi per la finale b che vince.
Anche nel corso dei 1000 m Charles giunge in finale, insieme ai favoriti Lee Ho-Suk e Lee Jung Soo, e al compagni di squadra e fratello François Hamelin e Apolo Ohno. Charles parte davanti, e inizia la gara ad un'andatura molto forte. A meno sei giri dal termine, il coreano Lee Ho-Suk passa al comando seguito dal compagno Lee Jung-Su che si aggiudica l'oro.
L'ultimo giorno di gare, durante i 500 m, Charles vince la medaglia d'oro. Dopo due giri dall'inizio della gara, viene superato dal detentore del record del mondo Sung-Si Bak, che però perde il passo e cade all'ultimo giro. Appena finita la batteria, corre dalla ragazza ad abbracciarla, contento per il risultato ottenuto. La stessa sera, inoltre, il Canada conquista la medaglia d'oro nella staffetta. Al termine della gara dice "Ho ottenuto due medaglie d'oro in 30min, e questo è incredibile".