Inizia la sua carriera da professionista nel 2003 correndo due gare del campionato spagnolo velocità, competizione in cui gareggia come pilota titolare anche la stagione seguente, chiudendo al sesto posto nella classifica generale con 49 punti. Si sposta nelle competizioni del motomondiale nel 2005, quando corre nella classe 125 con una Honda RS 125 R del team Angaia Racing, senza però riuscire a marcare punti iridati. Prosegue nel motomondiale anche il 2006 sempre nella stessa classe, correndo con il numero 12 nel team SSM Racing con una Aprilia RS 125 R, arrivando a racimolare quattro punti che gli consentono di piazzarsi ventisettesimo nella graduatoria piloti.
Inizia il 2007 ancora nel mondiale in 125 continuando con moto della casa di Noale ma passando al team Skilled Racing e lo conclude nella classe 250, correndo le ultime tre gare in calendario come pilota sostitutivo con l'Aprilia RSV 250 del Team Sicilia. In nessuna delle due classi riesce ad ottenere posizionamenti validi per raccogliere punti.
Nel 2008 è ancora in 250 correndo però solo sette gare come wildcard con l'Aprilia RSV 250, alternandosi tra il Zongshen Team of China ed il team Matteoni Racing, riuscendo a realizzare i migliori risultati della sua carriera nel motomondiale, chiudendo ventiduesimo nella classifica mondiale con 6 punti.
Cambia categoria nel 2009 spostandosi in Superstock 1000 FIM Cup con l'Aprilia RSV4 Factory del JiR Junior Team Gabrielli. Conclude la stagione al diciannovesimo posto nella classifica generale con 15 punti, ottenendo come miglior risultato in gara l'ottavo posto nel Gran Premio d'Italia tenutosi sul circuito di Monza.
Nel 2010 continua a correre con l'Aprilia RSV4 del team Gabrielli Michelin Racing ma passa al campionato Italiano Superbike, posizionandosi quinto nel campionato piloti con 53 punti, vincendo anche una gara sul Misano World Circuit
Nello stesso anno prende parte a due prove del mondiale Superbike come wildcard con la stessa moto e lo stesso team con cui corre in ambito nazionale, ottenendo 3 punti frutto di un 13º posto in gara 2 nel gran premio d'Italia ad Imola, classificandosi venticinquesimo nel mondiale piloti.
Partecipa ancora al campionato Italiano Velocità del 2011 nella categoria Superbike e passando alla guida di una Ducati 1098R del team Althea Racing riesce a migliorare i riscontri della stagione precedente, terminando terzo in classifica con 124 punti, grazie ad una vittoria e sei podi complessivi nelle otto gare in calendario. Anche questa stagione riesce ad ottenere una wildcard nel campionato mondiale Superbike per correre a Imola, ottenendo sette punti nelle due gare corse.
Per la stagione 2012 si accorda inizialmente con il team Liberty Racing per correre con la Ducati 1199 Panigale in Superstock 1000 FIM Cup,[1] ma vista la rinuncia della squadra a prendere parte al campionato,[2] trova soltanto alla vigilia della prima gara una sistemazione, venendo ingaggiato dal team Althea Racing.[3] Lasciata la Superstock 1000 FIM Cup dopo aver corso solo le prime due gare stagionali, anche questa volta per il ritiro della squadra dal campionato, ritorna a correre come wild card nel campionato mondiale Superbike correndo il GP di San Marino con la BMW S1000 RR del team Grillini Progea Superbike. Nella stessa stagione disputa due gare, in qualità di wild card, nel CIV Superbike, ottenendo due quarti posti.
Nel 2013 è pilota titolare nel Mondiale Superbike in sella ad una Kawasaki ZX-10R del Team Pedercini con lo svedese Alexander Lundh come compagno di squadra. Ottiene come miglior risultato stagionale un decimo posto in gara 1 nel Gran Premio di Portogallo a Portimão, chiude la stagione al diciassettesimo posto con 55 punti mondiali. Nel 2014 partecipa al campionato Italiano Velocità categoria Superbike, in sella ad una BMW S1000RR HP4.[4] A partire dal Gran Premio d'Italia a Misano Adriatico corre nella Superstock 1000 FIM Cup in sella ad una BMW S1000RR HP4 del team Motoxracing. Proprio in occasione della gara italiana[5] ottiene il giro più veloce in gara ma deve ritirarsi per un problema tecnico alla moto quando era secondo ad un giro dal termine dell'evento. Riesce comunque ad andare a punti nelle restanti tre gare, chiudendo la stagione al sedicesimo posto con sedici punti ottenuti.
Nel 2015 partecipa nuovamente al campionato Italiano Velocità, categoria Superbike, con una Ducati Panigale del team Ap Racing. Contestualmente svolge il ruolo di collaudatore per MV Agusta. Torna a disputare una gara internazionale nel 2016 prendendo parte al Gran Premio d'Italia a Misano Adriatico nella Superstock 1000 FIM Cup in sella ad una Yamaha YZF-R1 del team Berclarz Motoxracing. Partecipa anche alle ultime tre gare in calendario, chiudendo la stagione al trentottesimo posto con un punto ottenuto. Sempre con Yamaha prende parte, in qualità di wild card, al Gran Premio di Imola nel campionato Italiano Superbike ottenendo tredici punti.
Nel 2017 è pilota titolare nel campionato europeo Superstock 1000 alla guida di una BMW S1000RR del Berclaz Racing Team. Il compagno di squadra è lo svizzero Sébastien Suchet. Il 19 agosto 2017, in occasione del Gran Premio di Germania al Lausitzring ottiene la sua prima pole position in questa categoria.[6] In occasione del Gran Premio di Francia a Magny-Cours ottiene il suo primo podio in questa categoria giungendo terzo al traguardo. Chiude la stagione al dodicesimo posto in classifica piloti con cinquantadue punti ottenuti. Nel 2018 è nuovamente pilota titolare nella Superstock 1000, guida infatti una Ducati Panigale R gestita dal team Motocorsa Racing. Il compagno di squadra è il filippino Timothy Joseph Cua Albert.[7] Chiude il campionato al quarto posto in classifica con 117 punti ottenuti. In questa stagione porta a termine tutte le gare andando a punti e in tre occasioni anche sul podio. In occasione del Gran Premio di Francia, ultima gara della Superstock 1000, ottiene la sua prima vittoria.[8]