Cristante è un centrocampista che può essere impiegato da regista, trequartista e mezzala.[6][7] All'occorrenza può giocare anche difensore centrale, nei moduli che prevedono la difesa a 3 per via della sua capacità di palleggio, impostazione e senso della posizione.[8] Ambidestro,[7] dotato di buona visione di gioco[3] e tecnica,[3] è bravo a verticalizzare[6] e a facilitare la manovra[6] oltre che a inserirsi in fase offensiva.[4][6] La sua altezza lo rende anche un ottimo colpitore di testa.[6] Dispone anche di una buona forza fisica[3][4][6] che lo aiuta a vincere i contrasti.[6] Possiede inoltre un ottimo tiro dalla distanza.
Ha mosso i primi passi nella SAS Casarsa per poi passare, a 11 anni, all'ASD Liventina Gorghense e infine entrare nel settore giovanile delMilan.
Ha esordito con la prima squadra del Milan il 6 dicembre 2011, a 16 anni e 9 mesi, in una partita diChampions League, conclusasi con il pareggio esterno 2-2 contro ilViktoria Plzeň.[9]
Nellastagione 2013-2014 viene inserito in prima squadra. Esordisce inSerie A il 10 novembre 2013, a 18 anni, nella partitaChievo-Milan (0-0) alla 12ª giornata,[10] mentre nella successiva apparizione del 6 gennaio 2014 gioca titolare e segna il suo primo gol in Serie A nella partita vinta per 3-0 contro l'Atalanta.[11] La sua ultima apparizione con i rossoneri è stata pochi giorni dopo nella sconfitta per 4-3 contro ilSassuolo in cui ha fornito aMario Balotelli l'assist del provvisorio 2-0 dei rossoneri.[12]
Il 1º settembre 2014, a 19 anni, viene ceduto a titolo definitivo alBenfica[13] per 6 milioni di euro.[14] Il centrocampista debutta con la maglia della squadra portoghese il 12 settembre successivo, nella vittoria esterna 0-5 contro ilVitória Setúbal.[15] Nella sua prima stagione aLisbona ottiene 15 presenze totali, di cui 5 inPrimeira Liga e 3 inChampions League e il Benfica vince il campionato.
L'8 gennaio 2016 viene ufficializzato il trasferimento in prestito con diritto di riscatto alPalermo[16].Esordisce con la nuova maglia il 10 gennaio 2016, nella 19ª giornata diSerie A 2015-2016, entrando all'89º minuto della partita contro ilVerona vinta 1-0 in trasferta dai rosanero. Ottiene tuttavia solo 4 presenze fino alla fine del campionato.
Il 27 giugno seguente viene ceduto, sempre in prestito con diritto di riscatto, alPescara, neopromosso in Serie A[17]. Esordisce con il Pescara il 13 agosto 2016, nella partita Pescara-Frosinone (2-0) valida per il terzo turno dellaCoppa Italia.
Il 27 gennaio 2017 si trasferisce in prestito all'Atalanta, con un'opzione per il prolungamento del prestito per un'altra stagione (e successiva opzione per l'eventuale acquisto nell'estate del 2018 per 4 milioni di euro, da aggiungere alla cifra da pagare per il prolungamento del prestito).[3] Esordisce con gli orobici il successivo 5 febbraio, quando gioca gli ultimi minuti della partita casalinga vinta per 2-0 contro ilCagliari. Alla partita successiva segna la sua prima rete con la nuova squadra nel successo esterno per 3-1 con il Palermo.[18] Con l'allenatoreGian Piero Gasperini realizza 3 gol in 12 presenze, e contribuisce al 4º posto dell'Atalanta in campionato.
La stagione successiva l'Atalanta riscatta Cristante dal Benfica. Viene impiegato come mezzala o trequartista e realizza 3 gol inEuropa League e 9 gol in Serie A, per un totale di 12 gol in 47 presenze complessive in tutte le competizioni.[19]
L'8 giugno 2018 Cristante viene ceduto allaRoma: l'accordo prevede un prestito annuale oneroso di 5 milioni di euro, un obbligo di riscatto fissato a 15 milioni e circa 10 milioni di bonus. Il giocatore, che firma un contratto fino al 2023,[20][21] esordisce con la maglia del club capitolino il 19 agosto, a 23 anni, subentrando al posto diEl Shaarawy nel corso diTorino-Roma (0-1) alla prima giornata di campionato.[22] Il 16 settembre 2018 trova il primo gol in maglia giallorossa nel pari colChievo allostadio Olimpico per 2-2, valevole per la quarta giornata di campionato.[23] Ottiene 44 presenze nella sua prima stagione alla Roma, delle quali 35 in campionato nel quale realizza 4 gol, con un rendimento altalenante.[24]
La stagione successiva trova meno spazio con il neo allenatorePaulo Fonseca, soffrendo la concorrenza nel suo ruolo dei nuovi acquistiVeretout eDiawara, trovando comunque minutaggio inEuropa League.[25] Il 7 gennaio 2020 rinnova il suo contratto coi giallorossi fino al 2024.[26] Alla ripresa del campionato dopo illockdown viene spesso adattato dall'allenatore nel ruolo di difensore centrale.[27]
Nella stagione2020-2021 è il terzo capitano della squadra, dietroEdin Džeko eLorenzo Pellegrini, e indossa la fascia in numerose occasioni. In questa stagione gioca prevalentemente da difensore centrale di mezzo nella difesa a tre, complice anche l'assenza diChris Smalling per gran parte della stagione.[28][29]
Confermato sotto la guida del nuovo tecnicoJosé Mourinho[30], il 19 agosto 2021 Cristante debutta inUEFA Conference League, nella vittoria esterna sulTrabzonspor (1-2).[31] Il 26 agosto successivo realizza quindi il suo primo centro nella detta competizione, sempre contro i turchi (3-0).[32] Il 25 maggio 2022 vince con la Roma laConference League nellafinale vinta per 1-0 contro ilFeyenoord aTirana.[33] Chiude una buona stagione con ben 50 presenze stagionali, di cui 34 incampionato.
Nella stagione2022-2023 si conferma su buoni livelli e perno centrale della squadra giallorossa, con cui raggiunge lafinale di Europa League disputata aBudapest e persa contro ilSiviglia solamente airigori, realizzando però il proprio.
Nel giugno del 2023, prolunga il suo contratto con la Roma fino al 2027.[34] Il 17 dicembre seguente raggiunge le 250 presenze in maglia giallorossa, nella sconfitta esterna per 2-0 contro ilBologna.
Ha rappresentato le varie giovanili azzurre, a partire dall'Under-16, giocando sino all'Under-20. Nell'agosto 2015 viene convocato per la prima volta innazionale Under-21 dalCTLuigi Di Biagio, senza tuttavia scendere in campo. Debutta ufficialmente il 10 novembre 2016 nell'amichevole giocata contro l'Inghilterra aSouthampton, entrando al 76º di gioco al posto diBenassi.
Il 7 ottobre 2020, in occasione dell'amichevole vinta 6-0 contro laMoldavia, segna il suo primo gol con la maglia della nazionale e nel finale di gara indossa anche la fascia di capitano.[37] Nel giugno 2021 viene inserito dal CTRoberto Mancini nella lista dei 26 convocati per ilcampionato europeo.[38] Scende in campo da subentrato in sei delle sette partite della manifestazione, compresa lafinale diWembley vinta ai rigori contro l'Inghilterra, laureandosi campione d'Europa.[39]
Il successivo 30 settembre viene inserito tra i 23 convocati per la fase finale dellaUEFA Nations League,[40] dove l'Italia ottiene il terzo posto.
Nel giugno 2023, per la seconda edizione consecutiva, viene inserito nella lista dei convocati per lafase finale della Nations League,[41] chiusa nuovamente al terzo posto.
«Riconoscimento dei valori sportivi e dello spirito nazionale che hanno animato la vittoria italiana al campionato europeo di calcioUEFA Euro 2020.» — Roma, 16 luglio 2021. Di iniziativa delPresidente della repubblica.[46]