Iniziando a correre nelle serie italiane, vince nel 2006 e 2007 l'europeo minimoto Junior A e nel 2008 l'europeo minimoto Junior B[1]. Nel 2009 viene selezionato per il progetto HONDA HIRP MiniGP, vincendo il titolo di squadra e l’ultima gara di campionato. Passando poi nel 2010 al Campionato Italiano MiniGP diventando Vice Campione italiano al debutto con 1 vittoria e 4 podi. Nonostante questi risultati si ferma qualche anno e corre solo in Pitbike vincendo 2 campionati della serie. Sale di categoria passando alle Moto3 del CIV nel 2014 , ed è uno dei protagonisti di Motorhome - Piloti di famiglia, un docu-reality trasmesso da MTV,[2] partecipa inoltre ad alcune gare del campionato Italiano Moto3 senza ottenere punti, se non due podi durante l’ultimo round al Mugello ma iscrivendosi come wild card.
Nel 2015 è pilota titolare nel Campionato Italiano Moto3, conquista un podio ed il settimo posto in classifica finale. Nel 2016 disputa alcune gare nel CIV Moto3, in sella ad una TM, conquistando una vittoria.
Nel 2017 è pilota nuovamente titolare nel campionato italiano classe Moto3, con il Max Racing Team Mahindra. Conclude la stagione al terzo posto in classifica piloti vincendo due Gran Premi nonostante abbia saltato per infortunio le prime due gare . Nel 2018 arriva il passaggio in Superstock 1000 alla guida di una BMW S1000RR del team Gulf Althea BMW Racing. Si classifica settimo tra i piloti con 55 punti e un podio ottenuto nel Gran Premio della Repubblica Ceca,[3]Nel 2019 passa nel campionato mondiale Superbike con una Honda CBR1000RR del team Althea Mie Racing.[4] Termina la stagione al diciottesimo posto tra i piloti e nono nella graduatoria del Trofeo Indipendenti.[5]
Nel 2020 è pilota titolare nel Campionato Italiano Superbike con una BMW S1000RR del team DMR Racing. Ottiene tre piazzamenti a podio ed il quinto posto in classifica piloti. Nel 2021 rimane con DMR Racing passando alla guida di motociclette Honda, al termine della stagione è vice-campione italiano Superbike conquistando sette piazzamenti a podio e tre pole position.[6] Nella stessa stagione prende parte al Gran Premio di Most del mondiale Superbike, in qualità di pilota sostitutivo,[7] senza ottenere punti. Nel 2022 partecipa nuovamente al Campionato Italiano Velocità in sella alla Aprilia RSV4 1100 del team Nuova M2 Racing. In occasione del Gran Premio d'Italia a Misano è chiamato a sostituire Leon Haslam in sella alla Kawasaki ZX-10R del Team Pedercini nel mondiale Superbike senza ottenere punti.[8][9] Nel CIV, grazie a due vittorie consecutive al Mugello e a Imola, tiene aperta la corsa al titolo fino al termine della stagione, conclusa al secondo posto a solo undici punti dal campione Michele Pirro.[10] Nel 2023 rimane nel CIV Superbike passando al team Keope Motorsport in sella ad una Yamaha YZF-R1. ottiene quattro piazzamenti a podio, tra cui una vittoria a Imola,[11] e chiude la stagione al quarto posto in classifica piloti.[12] Nel 2024 gareggia ancora con Yamaha, spostandosi al team DMR Racing con Riccardo Russo come compagno di squadra.[13] Unico pilota in competizione per il titolo con Michele Pirro, è per la terza volta vice-campione italiano Superbike con tre vittorie e otto piazzamenti a podio complessivi.[14] Nella stessa stagione disputa tre Gran Premi nel mondiale Superbike: a Magny-Cours come sostituto dell'infortunato Dominique Aegerter,[15] a Cremona e Jerez come wild card con Yamaha Motoxracing totalizzando dieci punti.[16]