Centrocampista dinamico, ambidestro, è forte fisicamente e dotato di una buona tecnica di base. Può giocare come mezzala o interno di centrocampo, possiede un buon tiro dalla lunga distanza.
Carriera
Club
Gli inizi
Cresce calcisticamente nelle giovanili del Le Havre per poi passare nell'estate 2012 nelle giovanili del Manchester City, dove tuttavia non riesce a debuttare in prima squadra.
Genoa
Il 31 luglio 2015 si trasferisce con la formula del prestito biennale al Genoa. Alla prima giornata di Serie A 2016-2017 trova il suo primo gol, nella vittoria interna dei grifoni per 3-1 ai danni del Cagliari. Chiude la stagione con 20 presenze e 3 gol ma non convince la dirigenza rossoblù che decide di non esercitare il diritto di riscatto e il giocatore ritorna al Manchester City.[2].
Celtic e Olympique Marsiglia
Il 12 luglio 2017 si trasferisce a titolo definitivo per 4,5 milioni agli scozzesi del Celtic firmando un contratto quadriennale.[3] Il 5 agosto seguente esordisce in Scottish Premiership nella vittoria contro l'Hearts. L'8 agosto avviene l'esordio nella coppa di lega scozzese contro il Kilmarnock. Il suo primo gol in campionato con la maglia del Celtic decide la sfida dell'11 agosto contro il Partick Thistle. Il 16 agosto esordisce nelle competizioni europee venendo schierato nel match dei preliminari di Champions League contro l'Astana, trovando poi il primo gol in Champions League proprio nel match di ritorno del 22 agosto.
Il 1º febbraio 2021 viene ceduto in prestito all'Olympique Marsiglia, fino al termine della stagione.[4] Il suo trasferimento è però causa delle dimissioni dell'allenatore del club, Villas-Boas, in quanto aveva espresso chiaramente di non volere Ntcham.[5]
Ritornato in Scozia, svolge la preparazione precampionato con i biancoverdi fino al 1º agosto 2021, quando risolve il suo contratto con la società di Glasgow.[6]
Swansea City
Il 1º settembre 2021, dopo un mese da svincolato, si accasa allo Swansea City.[7]
Nazionale
Ntcham ha fatto la trafila delle nazionali giovanili francesi. Nel 2012 è stato eletto capitano dell'Under-16. Successivamente ha giocato nell'Under-19, inoltre vanta qualche gettone anche nell'Under-20.
Milita dal giugno 2017 per la nazionale Under-21 francese. Il 9 novembre trova il suo primo gol con la Nazionale minore, ai danni della Bulgaria Under-21.
Nel 2019 ha rifiutato una chiamata da parte del Camerun,[8] nazionale delle sue origini.[8] Tuttavia, nel marzo 2022, è tornato sui propri passi accettando la convocazione dai leoni indomabili.[9] Esordisce il 23 settembre dello stesso anno, partendo da titolare nell'amichevole persa per 2-0 contro l'Uzbekistan.[10]