Dopo anni di gavetta passati tra mini moto e campionati minori, nel 2010 partecipa all'europeo classe 125 svoltosi in gara unica ad Albacete dove si ritira a tre giri dalla conclusione. Nel 2012 esordisce nel campionato Spagnolo, classificandosi dodicesimo in sella alla Honda. Lo stesso anno conquista la sua prima wild card nel motomondiale, al GP d'Aragona, concludendo con un ritiro così come nell'europeo Moto3. Nel 2013 passa al team MIR Racing e si classifica sesto nel campionato Spagnolo Velocità, conquistando due secondi posti ad Aragón e nella gara 2 di Albacete. Prende parte anche al motomondiale ottenendo due wild card per prendere parte ai GP di Spagna e Comunità Valenciana, concludendo rispettivamente con un ritiro e un 22º posto.
Nel 2014 partecipa nuovamente al campionato Spagnolo (CEV), conclude al secondo posto in classifica generale dietro Fabio Quartararo, conquistando numerosi podi e la vittoria nella gara di Albacete. Nello stesso anno prende parte al motomondiale sostituendo, a stagione iniziata, Livio Loi dal GP di Indianapolis,[1] conquistando undici punti in nove gare.
Nel 2016 rimane nello stesso team, con compagno di squadra Arón Canet. Ottiene le sue prime vittorie (Catalogna[2] e Aragona), due secondi posti (Argentina e Americhe) e un terzo posto in Francia. In questa stagione è costretto a saltare il Gran Premio d'Olanda a causa di una frattura[3] di tibia e perone della gamba sinistra rimediata in allenamento, il suo posto, in questo frangente, viene preso dall'italiano Lorenzo Dalla Porta. Chiude la stagione al terzo posto in classifica piloti con 150 punti all'attivo.
Nel 2017 passa in Moto2, alla guida della Kalex del team Gresini Racing. Ottiene come miglior risultato tre sesti posti (Catalogna, Germania e Aragona) e termina la stagione al 14º posto con 60 punti. In questa stagione è costretto a saltare il Gran Premio della Malesia a causa di una lesione a un legamento dell'anulare della mano sinistra rimediata nel precedente GP d'Australia. Nel 2018 rimane nello stesso team, ottenendo come miglior risultato un quinto posto in Austria e terminando la stagione al 13º posto con 58 punti.
Nel 2019 passa alla guida della Speed Up, con compagno di squadra Fabio Di Giannantonio. Ottiene quattro secondi posti (Spagna, Francia, Gran Bretagna e Aragona), cinque terzi posti (Americhe, Catalogna, Austria, Spagna e Comunità Valenciana) e quattro pole position (Spagna, Francia, Australia e Comunità Valenciana) e termina la stagione al 4º posto con 226 punti. Nel 2020 è nuovamente pilota titolare in Moto2, con lo stesso team della stagione precedente. Ottiene come miglior risultato un quarto posto in Catalogna e termina la stagione al 17º posto con 58 punti.[4]
Nel 2021 rimane nello stesso team, con telaio rinominato Boscoscuro e con compagno di squadra Yari Montella. Ottiene un terzo posto in Gran Bretagna e chiude la stagione al nono posto con 106 punti.[5] Nel 2022 passa al team Pons Racing, il compagno di squadra è Arón Canet. Un grave incidente in gara al Gran Premio d'Australia gli impedisce di prendere parte alle ultime due gare del campionato;[6] chiude al quindicesimo posto con il podio in Portogallo come miglior risultato stagionale.[7]
Nella stagione 2024 corre come pilota sostituito con Forward Racing in Francia chiudendo ventesimo. Gareggia successivamente come wildcard in cinque occasione ed in Catalogna e riesce a cogliere il decimo posto in gara portando i primi punti alla squadra nella Classifica Costruttori.[8] Per gli ultimi tre appuntamenti stagionali viene ingaggiato da American Racing Team in sostituzione dell'infortunato Joe Roberts.[9] Va a punti in Thailandia chiudendo la gara in quindicesima posizione e la gara successiva in Malesia riesce a cogliere un'inaspettata Pole Position dopo cinque anni dall'ultima volta, riuscendo poi a chiudere la gara a podio in seconda posizione dietro solo a Celestino Vietti.[10] Grazie a questo suo rendimento chiude con 27 punti in ventitreesima posizione.[11]
Nel 2024 prosegue nel mondiale Supersport, ingaggiato dal team WRP-RT Motorsport alla guida di una Triumph Street Triple RS 765. Dopo poche gare passa a Orelac Racing Verdnatura alla guida della Panigale V2 scambiandosi la sella con Lorenzo Baldassarri.[13] Ottiene due piazzamenti a podio e si classifica sesto nel mondiale.[14] Contestualmente alle gare delle derivate di serie, disputa tre Gran Premi con Forward Racing come pilota sostitutivo in Moto2 conquistando i primi punti stagionali per la compagine svizzera. Successivamente è chiamato a sostituire l'infortunato Joe Roberts per American Racing:[15] in questo frangente sale sul podio a Sepang dopo essere partito dalla pole position. I punti conquistati gli consentono di classificarsi ventitreesimo.[16] Parallelamente alle competizioni mondiali, con lo Junior Team di Forward, prende parte a sei gare del campionato Europeo di Moto2. Conquista tre piazzamenti a podio e una pole classificandosi settimo tra i piloti.[17]