Comincia a farsi notare nelle categorie Minimoto e MiniGP, della quale diventa campione europeo nel 2009. Nel 2010 corre nel campionato mediterraneo 125 PreGP, concludendo secondo. Nel 2011 e nel 2012 prende parte al campionato spagnolo velocità, classificandosi al terzo posto finale, prima nella classe 125 e poi nella classe Moto3, e ottenendo in ciascuna stagione una vittoria in gara.[1][2]
Esordisce nel motomondiale nel 2013 in Moto3 con la FTR M313 del San Carlo Team Italia, avendo come compagno di squadra Romano Fenati. Alla sua stagione d'esordio, non ottiene punti. Nel 2014 entra a far parte del neonato SKY Racing Team VR46, guidando una KTM RC 250 GP, ancora con Fenati come compagno di squadra. Nel primo Gran Premio stagionale in Qatar riesce ad ottenere i suoi primi punti nella classifica iridata. Ottiene come miglior risultato un quarto posto in Francia e termina la stagione al 16º posto con 50 punti. In questa stagione è costretto a saltare i Gran Premi d'Olanda e Germania, a causa della frattura del radio sinistro, rimediata nel warm up del Gran Premio d'Olanda[3].
Nel 2016 rimane nello stesso team, con compagno di squadra ancora Jorge Martín. La stagione si apre con un terzo posto in Qatar.[4] Si ripete a Jerez, gara in cui è protagonista di una battaglia con Jorge Navarro e Nicolò Bulega.[5] Torna sul terzo gradino del podio al Mugello, dove sopravanza Niccolò Antonelli al fotofinish.[6] Vince la sua prima gara ad Assen il 26 giugno 2016, davanti a Fabio Di Giannantonio e Andrea Migno, conquistando così la prima vittoria nel motomondiale per il costruttore Mahindra[7]. Giunge secondo in Gran Bretagna, dopo essere partito dalla pole position. Vince anche il Gran Premio della Malesia davanti a Jakub Kornfeil[8]. Chiude la stagione al quarto posto in classifica piloti, con 145 punti all'attivo.
Nel 2018 rimane nello stesso team, con compagno di squadra Luca Marini, fratellastro di Valentino Rossi. Ottiene una vittoria in Qatar e si ripete in Texas.[11][12] Giunge terzo in Spagna. In Francia e Olanda vince dopo essere partito dalla pole position. In Repubblica Ceca giunge terzo. In Austria vince dopo essere partito dalla pole position. In Gran Bretagna ottiene la pole position, ma la gara viene cancellata perché l'asfalto non drenava la pioggia. Nel Gran Premio di San Marino vince dopo essere partito dalla pole position. In Aragona giunge secondo. Vince in Thailandia, ottenendo così, grazie anche al secondo posto di Luca Marini, la prima doppietta in gara per lo SKY Racing Team VR46. In questa circostanza inoltre, Bagnaia ottiene la vittoria numero 800 per un pilota italiano nel Motomondiale.[13] Vince in Giappone dopo essere partito dalla pole position.
In Malesia giunge terzo al traguardo, piazzamento che gli consente di conquistare il suo primo mondiale con una gara di anticipo.[14] Conclude la stagione con 306 punti iridati.
Nel 2019, primo anno in sella alla Ducati del Team Pramac Racing, colleziona una serie di ritiri. Tuttavia nel Gran Premio di Australia arriva quarto partendo dalla quindicesima posizione in griglia[15]. Chiude la stagione al 15º posto con 54 punti. In questa stagione è costretto a saltare il Gran Premio della Comunità Valenciana per la frattura del polso sinistro rimediata nelle prove libere del GP[16].
Nel 2020 rimane nello stesso team. In questa stagione è costretto a saltare i Gran Premi di Repubblica Ceca, Austria e Stiria per la frattura della tibia destra rimediata nelle prove libere del GP a Brno.[17] Il 13 settembre ottiene il suo primo podio in MotoGP sul Circuito di Misano, concludendo la gara al secondo posto. Conclude la stagione al 16º posto con 47 punti.[18]
Nel 2021 passa nel team ufficiale Ducati.[19] In occasione del primo gran premio della stagione in Qatar, conquista la sua prima pole position nella massima categoria,[20] concludendo la gara al terzo posto. Giunge secondo in Portogallo, Spagna e Austria. Il 12 settembre vince la sua prima gara in MotoGP ad Aragon dopo essere partito dalla pole position.[21] Si ripete nel Gran Premio di San Marino. Nel Gran Premio delle Americhe giunge terzo dopo essere partito dalla pole position. Ottiene la pole position anche nel Gran Premio dell'Emilia-Romagna. Nel Gran Premio dell'Algarve vince dopo essere partito dalla pole position.[22] Vince ancora nell’ultima gara della stagione, il Gran premio della Comunità Valenciana.[23] Chiude la stagione al secondo posto a 26 punti dal campione Fabio Quartararo.[24]
Il 21 febbraio 2022 viene annunciato il rinnovo di contratto per altre due stagioni, prolungando il contratto in essere con Ducati fino al 2024[25]. Poco prima della prima gara stagionale in Qatar, Bagnaia e la Ducati decidono di scartare il nuovo motore della GP22 e mantenere un motore 2021 aggiornato[26]. Dopo le prime gare lontano dal podio, Bagnaia conquista la pole a Jerez[27]; inoltre, in gara riesce a tornare alla vittoria[28]. A Le Mans cade mentre era in seconda posizione dietro ad Enea Bastianini[29], ma nella gara successiva al Mugello torna alla vittoria dopo essere partito quinto in griglia[30]. Nelle due gare successive cade e non ha la possibilità di concludere le gare.