La sua carriera sportiva è iniziata con le minimoto, raggiungendo il titolo europeo nella categoria junior 50 del 2006. Dopo aver ottenuto un titolo italiano in una serie mono-marca nel 2011, il 2012 lo vede alla partenza del campionato Italiano Velocità dove ottiene il secondo posto finale in classifica. Lo stesso anno ottiene il titolo europeo della Moto3 nella prova unica disputata a Albacete.[1]
Esordisce nel motomondiale nel 2013 in Moto3, alla guida della FTR M313 del team Ongetta-Centro Seta. Termina la stagione al 27º posto con 2 punti, totalizzati con due quindicesimi posti (Indianapolis e Comunità Valenciana). In questa stagione è costretto a saltare il Gran Premio d'Australia per la frattura del quarto metacarpo della mano destra rimediata nel warm up del GP.
Nel 2014 cambia squadra e passa al San Carlo Team Italia, andando a guidare una Mahindra MGP3O con il numero 3. È compagno di squadra di Andrea Locatelli. Ottiene come miglior risultato un nono posto in Germania e termina la stagione al 22º posto con 12 punti. Nel 2015 rimane nello stesso team, con compagno di squadra Stefano Manzi. Partecipa alle prime tredici gare in calendario. Chiude la stagione al trentatreesimo posto con un punto.
Torna a disputare delle gare mondiali nel 2016 quando partecipa, in qualità di wild card, alle due gare in territorio italiano della Superstock 1000 FIM Cup in sella a una BMW S1000RR del team DMR Racing. Ottiene punti, arrivando nei primi dieci in entrambe le gare. Chiude la stagione al ventunesimo posto conquistando quindici punti. In questa stagione inoltre è pilota titolare nel campionato Italiano Superbike, con lo stesso team con cui partecipa alla Superstock 1000. Ottiene una vittoria e il terzo posto in classifica piloti.
Nel 2017 è nuovamente pilota titolare nel campionato italiano Superbike lo stesso team e la stessa motocicletta della stagione precedente. Chiude la stagione al quarto posto. Disputa inoltre le due gare in territorio italiano del campionato europeo Superstock 1000 sempre con BMW. Ottiene punti in entrambe le occasioni, riuscendo a chiudere al diciassettesimo posto in classifica piloti.
Nel 2018 corre nel CIV Superbike con il Team Barni e con la Ducati Panigale concludendo al secondo posto con 196 punti e due vittorie. Partecipa anche alla Superstock 1000 nel Gran Premio d'Italia a Imola, sempre in sella a una Ducati Panigale R del Barni Racing Team, vincendolo.[2] Prende parte anche al successivo Gran Premio d'Italia a Misano, chiudendo però con un ritiro. I punti ottenuti nel primo evento gli consentono di chiudere al dodicesimo posto in classifica piloti.
Nel 2019 torna a correre nel contesto del motomondiale, prendendo parte alla Coppa del Mondo della classe MotoE con il team Trentino Gresini MotoE, ottiene due vittorie a Misano.[3] Diventa campione all'ultima gara battendo Bradley Smith per 11 punti.[4] Corre anche nel CEV Moto2, con il Laglisse Gresini Academy, classificandosi tredicesimo.
Nel 2020 corre ancora nella MotoE, con lo stesso team, il Gresini Racing, il compagno di squadra è Alessandro Zaccone; chiude la stagione al 2º posto con 97 punti.[5] Nello stesso anno corre nel mondiale Superbike in sostituzione dell'infortunato Leandro Mercado sulla Ducati Panigale V4 del team Motocorsa Racing nel Gran Premio di Teruel e sulla Ducati del team Barni Racing sul circuito di Estoril al posto di Samuele Cavalieri. Conquista cinque punti che gli consentono di classificarsi ventitreesimo in classifica mondiale e tredicesimo tra gli indipendenti.[6]
Nel 2021 rimane nello stesso team, con compagno di squadra Andrea Mantovani. Chiude la stagione al 3º posto con 86 punti. Nel 2022 è nuovamente pilota titolare in MotoE, con lo stesso team delle stagioni precedenti. Il compagno di squadra è Alessio Finello. Prende punti in tutte le gare in calendario vincendone due: al Mugello e a Misano (circuito dove ottiene la sesta vittoria).[7] Chiude al terzo posto in classifica.[8] Nella stessa stagione disputa la classe Supersport (categoria Next Generation) del Campionato Italiano Velocità in sella a una Panigale V2: ottiene una pole position al Mugello e una vittoria a Imola chiudendo al terzo posto.[9] Nel 2023 inizia la quinta stagione consecutiva in MotoE con il team Gresini, il compagno di squadra è Alessio Finello. Rimane in corsa per il titolo fino alla fine del campionato, che chiude al terzo posto. In questa annata ottiene sette piazzamenti a podio tra cui tre vittorie.[10] Oltre alle motociclette elettriche prende parte all'evento inaugurale del CIV Supersport dove, in sella ad una Ducati, conquista il podio in gara due. A fine novembre inoltre, fa il suo esordio nella classe Moto2 del mondiale disputando, in qualità di wild card il Gran Premio della comunità Valenciana concludendolo in diciannovesima posizione.[11] Il 2024 vede Ferrari al via del mondiale MotoE per il sesto anno consecutivo con Gresini. Chiude la stagione all'ottavo posto.[12]