Esordisce nella classe 125 del motomondiale nel 2003, iniziando la stagione con l'Aprilia RS 125 R del team Freesoul Racing, per poi venir ingaggiato a partire dal GP del Brasile dal team Metasystem Racing Service con una Honda RS 125 R. Ottiene come miglior risultato un tredicesimo posto al GP di Catalogna e termina la stagione al 28º posto con 5 punti.
Nel 2004 passa al team Globet.com Racing, ottenendo come miglior risultato un quinto posto al GP del Sudafrica e terminando la stagione al 18º posto con 41 punti. In questa stagione è costretto a saltare i GP del Qatar, per una frattura a una caviglia, e della Comunità Valenciana. Sempre nel 2004 gareggia nella prova di Misano nel campionato italiano 125 come wild card senza punti conquistando pole position, secondo posto e giro più veloce dell'evento.[2]
Nel 2005 passa al team Kopron Racing World; il compagno di squadra è Fabrizio Lai. Ottiene la sua prima vittoria al GP di Turchia e un secondo posto a quello di Gran Bretagna e termina la stagione all'11º posto con 104 punti. Nel 2006 passa al team FFM Honda Grand Prix 125, ottenendo come miglior risultato due tredicesimi posti (al GP d'Olanda e a quello della Repubblica Ceca) e terminando la stagione al 25º posto con 8 punti. In questa stagione è costretto a saltare i GP di Germania e della Comunità Valenciana per infortuni.
Nel 2007 passa al Kopron Team Scot, ottenendo come miglior risultato un quarto posto al GP del Giappone e terminando la stagione al 17º posto con 42 punti. In questa stagione è costretto a saltare i GP di Spagna e Turchia a causa di un infortunio rimediato nelle qualifiche del GP di Spagna.
Nel 2008 passa al team Ajo Motorsport; il compagno di squadra è Dominique Aegerter. In questa stagione vince il titolo mondiale, con quattro vittorie (ai GP di Francia, Catalogna, Germania e d'Australia), quattro secondi posti (ai GP di Cina, Gran Bretagna, Repubblica Ceca e Giappone), un terzo posto al GP della Comunità Valenciana, due pole position (Giappone e Australia) e 264 punti iridati, precedendo Simone Corsi e Gábor Talmácsi. Rispetto ai due competitori il francese si fa preferire per la sua regolarità: nel corso della stagione si ritira una volta sola.[3]
Nel 2009 passa alla classe 250, nel team dell'Aprilia Mapfre Aspar 250cc, ottenendo un secondo posto al GP del Portogallo, un terzo posto in Qatar e una pole position al GP di Indianapolis e terminando la stagione all'8º posto con 107 punti. Nel 2010 continua a gareggiare per lo stesso team, nella classe Moto2, iniziando la stagione con una RSV per poi passare dal GP di Francia ad una Suter MMX; il compagno di squadra è Julián Simón. Ottiene come miglior risultato un sesto posto in Australia e termina la stagione al 20º posto con 34 punti. Nel 2011 passa al team Tech 3 Racing, con compagno di squadra Bradley Smith. Ottiene come miglior risultato un settimo posto al GP della Comunità Valenciana e termina la stagione al 23º posto con 30 punti.
Nel 2012 inizia la stagione al team S/Master Speed Up, in seguito, al GP d'Italia e per i due successivi GP, sostituisce l'infortunato Alexander Lundh al team Cresto Guide MZ Racing. Nel GP di San Marino fino al termine del campionato, corre sulla Kalex Moto2 del team Kiefer Racing in sostituzione dell'infortunato Max Neukirchner. Ottiene come miglior risultato un settimo posto in Qatar e totalizza 17 punti. Nel 2013 passa al team JiR Moto2 alla guida di una TSR 6, marchiata ai fini del campionato costruttori come MotoBi. Chiude la stagione anzitempo per una frattura all'osso sacro rimediata nel GP della Repubblica Ceca, con un settimo posto in Francia come miglior risultato e il 20º posto finale con 19 punti.
Nel 2014 passa in MotoGP, alla guida di una motocicletta (con specifiche Open) sviluppata dal team Avintia Racing; il compagno di squadra è Héctor Barberá. Ottiene come miglior risultato un dodicesimo posto al GP di Indianapolis e termina la stagione al 25º posto con 9 punti. Nel 2015 rimane nello stesso team pur cambiando moto, guida infatti una Ducati Desmosedici GP14 con specifiche open. Chiude la stagione al 24º posto con 8 punti. Nel 2016 viene ingaggiato come pilota collaudatore dall'Aprilia per sviluppare la RS-GP.[4]
Rientra a correre nelle competizioni del motomondiale nel 2019, quando prende parte alla coppa del mondo della classe MotoE con il team EG 0,0 Marc VDS. Ottiene un terzo posto in Germania e una vittoria in Austria andando a chiudere la stagione al quinto posto tra i piloti con 63 punti ottenuti.[6] Nel 2020 rimane nello stesso team, ottiene due secondi posti nel Gran Premio di Francia e chiude la stagione al quarto posto con 75 punti.[7]
^(EN) 125 2008 - World Championship Classification (PDF), su resources.motogp.com, Dorna Sports S.L., 26 ottobre 2008. URL consultato il 13 febbraio 2019 (archiviato dall'url originale il 27 marzo 2022).