Cresciuto a Saludecio, comincia a correre in competizioni nazionali nel 2010, giungendo sesto nel Trofeo Honda 125GP. Nel 2011 passa a correre nella Red Bull Rookies Cup,[1] e nel CIV classe 125, facendo anche qualche apparizione nel campionato spagnolo. Nel 2012 disputa una gara nel CIV Moto3 ma non ottiene punti, nella stessa stagione partecipa al campionato Europeo Velocità Moto3, svoltosi in gara unica ad Albacete, dove si classifica in diciottesima posizione. Continua poi a correre nel campionato spagnolo dove si classifica ottavo nella Moto3 nel 2013. Nello stesso anno corre nella classe Moto3 del motomondiale i Gran Premi di Catalogna e Repubblica Ceca come wildcard a bordo di una FTR M3 del team GMT Racing.
Nel 2014 corre nel CEV, nel team di Valentino Rossi, con compagno di squadra Luca Marini. Sempre nel 2014 corre nel mondiale in Moto3 per il team Mahindra Racing a partire dal Gran Premio di Gran Bretagna al posto di Arthur Sissis. Nel Gran Premio di San Marino ottiene i suoi primi punti nella classifica del mondiale. Nel 2015 passa allo SKY Racing Team VR46 alla guida di una KTM RC 250 GP; il compagno di squadra è Romano Fenati. Raccoglie 35 punti in stagione che gli valgono il diciannovesimo posto in classifica finale. Nel 2016 rimane nello stesso team, equipaggiato con la stessa moto; i compagni di squadra sono Romano Fenati e Nicolò Bulega. In occasione del Gran Premio d'Olanda ottiene il suo primo podio nel motomondiale, giungendo terzo al traguardo dietro a Francesco Bagnaia e Fabio Di Giannantonio. Ottiene un altro podio nella gara finale a Valencia e chiude la stagione al diciassettesimo posto in classifica piloti con 63 punti.
Nel 2017 inizia la terza stagione consecutiva con lo SKY Racing Team VR46. Il compagno di squadra è il connazionale Nicolò Bulega. Ottiene la prima vittoria nel motomondiale nel Gran Premio d'Italia. A fine stagione è l'unico pilota equipaggiato da motociletta KTM ad aver ottenuto un successo in campionato (le altre vittorie sono tutte della Honda).[2] Chiude la stagione al nono posto in classifica piloti con 118 punti ottenuti.
Nel 2018 passa al Ángel Nieto Team, che gli affida una KTM; il compagno di squadra è Albert Arenas. Ottiene un secondo posto in Francia[3] e conclude la stagione all'11º posto con 84 punti. Nel 2019 passa alla guida della KTM del team Bester Capital Dubai; il compagno di squadra è Jaume Masiá. Ottiene un secondo posto in Comunità Valenciana, un terzo posto nel Gran Premio delle Americhe e una pole position in Comunità Valenciana e chiude la stagione al 13º posto con 78 punti.
Nel 2020 torna nello SKY Racing Team VR46, il compagno di squadra è Celestino Vietti.[4] Ottiene come miglior risultato un quarto posto in Spagna e termina la stagione al 15º posto con 60 punti. Nel 2021 guida la Honda NSF250R del team Rivacold Snipers; il compagno di squadra è Filip Salač. Ottiene un secondo posto nel Gran Premio dell'Algarve, due terzi posti (Portogallo e San Marino) e due pole position (Portogallo e Francia) e chiude la stagione al decimo posto con 110 punti.[5]
Nel 2022 è confermato nel team Snipers, con compagno di squadra Alberto Surra. Vince al debutto stagionale in Qatar[6] e sale nuovamente sul podio ad Austin; chiude la stagione al nono posto.[7]