Comincia a correre in moto all'età di quattro anni. Partecipa a diverse competizioni nazionali, per poi passare nel 2012 alla categoria Moto3 del campionato spagnolo Velocità, dove conclude secondo nel 2015. Nel 2012 inoltre partecipa al campionato Europeo Velocità Moto3, svoltosi in gara unica ad Albacete, dove si ritira dopo quattro giri. Nel 2013 disputa la gara inaugurale della European Junior Cup; dopo essere partito dalla pole position chiude la gara al secondo posto.
Nel 2017 corre con la Mahindra del Aspar Team; il compagno di squadra è Lorenzo Dalla Porta. Ottiene come miglior risultato un ottavo posto nel Gran Premio di San Marino e termina la stagione al 26º posto con 14 punti. In questa stagione è costretto a saltare i Gran Premi di Catalogna, Olanda e Germania per la lussazione della spalla sinistra rimediata nel GP d'Italia e i Gran Premi di Giappone, Australia e Malesia per la frattura del terzo metacarpo della mano destra rimediata nelle qualifiche del GP del Giappone.
Nel 2018 rimane nello stesso team rinominato "Ángel Nieto Team", alla guida di una KTM; il compagno di squadra è Andrea Migno. In questa stagione è costretto a saltare il Gran Premio del Qatar per la frattura della clavicola destra rimediata nel warm up del GP. In occasione del Gran Premio di Francia ottiene la prima vittoria nel contesto del motomondiale.[1] Vince anche in Australia. Conclude la stagione al 9º posto con 107 punti.
Nel 2019 rimane nello stesso team, con compagno di squadra Raúl Fernández;[2] ottiene una vittoria in Thailandia e un secondo posto in Giappone e chiude la stagione all'11º posto con 108 punti. In questa stagione è costretto a saltare i Gran Premi d'Argentina e delle Americhe a causa di una lesione alla milza e della frattura della sesta costola destra rimediate in un incidente in bici.
Nel 2020 corre nello stesso team della stagione precedente, il compagno di squadra è Stefano Nepa. In occasione della gara inaugurale in Qatar ottiene la centesima vittoria per il costruttore KTM nel contesto del motomondiale.[3] Vince anche in Spagna. Ottiene un secondo posto in Repubblica Ceca. Vince in Austria ed arriva terzo dietro a due italiani nella Gran Premio di Francia a Le Mans l'11 Ottobre 2020. Il 22 novembre 2020 si laurea campione del mondo Moto3 con 174 punti iridati.[4]
Nel 2021 rimane nello stesso team ma in classe Moto2, alla guida di una Speed Up con telaio rinominato Boscoscuro e con compagno di squadra Arón Canet. Ottiene come miglior risultato un ottavo posto in Germania e termina la stagione al ventunesimo posto con 28 punti.[5] Nel 2022 continua con il team GasGas Aspar, il compagno di squadra è Jake Dixon. Il miglior risultato stagionale è il quarto posto al Gran Premio di Misano, chiude la stagione come dodicesimo in classifica.[6] Nel 2023 passa al team Ajo, il compagno di squadra è Pedro Acosta. In occasione del Gran Premio di Catalogna ottiene il suo primo podio in Moto2[7] e conclude il campionato al quattordicesimo posto.[8]