Mancino naturale, gioca prevalentemente comeala destra, ma può agire anche sulla fascia opposta, possiede una spiccata agilità e un'ottima capacità di corsa. Viene utilizzato in un modulo di gioco4-3-3. Può giocare anche nella posizione ditrequartista: il suo elegante stile di gioco è caratterizzato da una buona tecnica individuale.[1]Frédéric Née, allenatore delBastia, lo ha definito «un giocatore molto interessante perché è in grado di occupare tre posizioni offensive. Lui può alternarsi sia al piede destro che a quello sinistro, ha una buona qualità tecnica e un ottimo tiro. In pochi mesi ha superato 2-3 livelli. Questo è un ragazzo che lavora molto e ascolta sempre i consigli dati».[2]
Gioca le sue prime partite nelle giovanili delFCM d'Ingré e nel 2005 passa alFCO Saint-Jean-de-la-Ruelle, due club di località vicine aOrléans. Nel 2007 passa all'Orléans, club della città natale. Nel 2008, all'età di 15 anni, passa alGrenoble, squadra neopromossa inLigue 2. Secondo le diagnosi delle visite mediche, al momento del suo arrivo Thauvin ha una frattura vertebrale, e ciò potrebbe compromettere la sua carriera. Successivamente si integra di nuovo alla squadra U17, U19 e quella di riserva.[3] Fa il suo esordio tra i professionisti con la maglia delGrenoble inLigue 2 durante la stagione 2010-2011. In totale disputa 3 partite di campionato in questa stagione. A fine anno il suo contratto non viene rinnovato e quindi rimane svincolato.
Nell'estate del 2011 viene ingaggiato dalSC Bastia guidato dall'allenatoreFrédéric Hantz, squadra neopromossa inLigue 2. A inizio stagione si allena con la prima squadra, ma gioca con la squadra riserve guidata daFrédéric Born. Passa successivamente in prima squadra, con la quale disputa 13 partite, giungendo primo in campionato e raggiungendo laLigue 1.
Nella stagione 2012-2013 gioca tra i titolari, collezionando 34 presenze tracampionato ecoppa e mettendo a segno 10 gol, tra i quali una doppietta contro ilBordeaux (vittoria per 3-1), diventando così il più giovane dei marcatori tra i massimi campionati in Europa.[4] Il 2 marzo2013 riceve il suo primo cartellino rosso tra i professionisti, nel derby contro l'Ajaccio, che si concluderà con cinque espulsioni complessive (3 per l'Ajaccio e 2 per il Bastia, con quest'ultima alla fine vincente per 1-0). Un gol siglato contro il Marsiglia nell'incontro perso 2-1 dal suo Bastia riesce a fermare l'imbattibilità di Mandanda a sette partite. A fine anno vince il trofeo UNFP, risultando al 1º posto tra i migliori giocatori stagionali.
Il 29 gennaio 2013 firma un contratto di quattro anni con ilLOSC Lille, squadra militante nellamassima serie francese, a 3,5 milioni di euro complessivi.[5][6] Rimarrà comunque in prestito al Bastia fino al termine della stagione. In estate ilLOSC Lille decide di prendere in considerazione l'aumento dello stipendio per il giovane a 75.000 euro al mese.[7] Thauvin partecipa a una sola partita con il Lille per poi decidere di non allenarsi, rinunciando a €1.500 al giorno per essere trasferito al Marsiglia; il passaggio all'Olympique Marsiglia avviene nelle ultime ore di mercato.[8]
Il 2 settembre 2013 firma un contratto di cinque anni con ilMarsiglia, in cambio di 11 milioni di euro più 2 di bonus alLOSC, un milione al Bastia e 650.000 alGrenoble; l'ammontare finale del trasferimento è dunque di 14,65 milioni di euro.[9] L'esordiostagionale avviene il 14 settembre dello stesso anno, contro ilTolosa (1-1). Il suo primo gol stagionale viene siglato contro ilReims (partita persa 3-2). Il primo gol inChampions League lo segna invece contro ilNapoli (partita persa 3-2), servendo anche un assist.
Nel gennaio 2016 fa ritorno al Marsiglia con la formula del prestito fino a fine stagione. L'11 agosto 2016 viene prolungato il prestito per un'altra stagione con diritto di riscatto a favore della società francese,[11][12] venendo poi riscattato per 11 milioni di euro.[13]
In scadenza di contratto con l'Olympique Marsiglia, nonostante l'interesse di vari prestigiosi club europei, il 7 maggio 2021 annuncia a sorpresa di aver firmato un precontratto coi messicani delTigres UANL, valido dal 1º luglio successivo.[14]
Dopo essersi svincolato dal Tigres,[15] il 31 gennaio 2023 sottoscrive un contratto di due stagioni e mezzo con l'Udinese.[16] Esordisce con i friulani in serie A il 5 febbraio successivo, subentrando nella ripresa aLazar Samardžić nella partita persa per 1-0 in casa delTorino. Chiude la sua prima stagione senza segnare, ed il primo gol ufficiale arriva su rigore l'11 agosto nella sfida del primo turno diCoppa Italia contro ilCatanzaro, vinta per 4-1. Sempre su rigore segna il suo primo gol in serie A, il 23 ottobre 2023 nella partita casalinga contro ilLecce, conclusa sull'1-1.[17]
Il 16 settembre 2024, realizza una doppietta contro ilParma, che consente alla squadra di rimontare dal 2-0 al 2-3.[18]
A partire dalla stagione 2024/25 diventa il capitano dei friulani.
Il 6 luglio 2013 va a segno nella partita vinta per 4-0 contro l'Uzbekistan nei quarti di finale delMondiale Under-20. Il 10 luglio realizza una doppietta nella vittoria francese per 2-1 in semifinale contro il Ghana, mentre il 13 luglio si laurea campione del mondo, grazie alla vittoria ai rigori sull'Uruguay.
Nel marzo 2017 riceve la sua prima chiamata innazionale maggiore.[19][20] Il 2 giugno 2017 debutta con iBleus nella gara vinta per 5-0 sulParaguay subentrando all'80º minuto al posto diAntoine Griezmann.[21] Viene convocato per ilMondiale 2018, laureandosi così campione del mondo, pur avendo giocando appena 3 minuti nel corso dell'intera competizione, negli ottavi di finale vinti 4-3 contro l'Argentina.[22]
L'11 giugno 2019 realizza la sua prima rete in nazionale nel successo per 0-4 contro Andorra.[23][24]
Nel luglio 2021 prende parte con il numero 14, come fuoriquota, al torneo olimpico di Tokyo 2020 nella formazione diretta daSylvain Ripoll; gli altri due over 23 anni sono il suo compagno di squadraAndré-Pierre Gignac eTeji Savanier del Montpellier HSC.