Kim Nam-gil inizia la sua carriera d'attore con un ruolo minore nella serie giovanile del 2003. Quattro anni più tardi, vince le audizioni condotte dal canale MBC, apparendo in seguito in piccoli ruoli nei programmi della rete, come Gotse-ara Geum-soon-a. Durante questo periodo di tempo, lavora sotto lo pseudonimo di Lee Han, che abbandonerà solo nel 2008[2].
Nel 2006, interpreta un omosessuale nel controverso film indipendente Huhoehaji anh-a: la pellicola viene acclamata dalla critica, ma non riesce a dargli popolarità, e Kim torna alla televisione. Nel 2008, ottiene il primo ruolo da protagonista nel film erotico in costume Mi-indo. Segue, l'anno successivo, la parte di Bidam nel drama storico Seondeok yeo-wang: la serie gode di notevole successo, con un picco di share superiore al 40%, e il suo personaggio, inizialmente secondario, viene apprezzato dal pubblicato e ampliato, enfatizzando la sua storia d'amore con la regina Seondeok (nonostante l'inesattezza storica), venendo di fatto promosso a personaggio principale e facendo da volano per la sua carriera[3][4][5][6][7]. Dopo l'uscita del film indipendente Pokpungjeon-ya, Kim torna in televisione nel molodramma Nappeun namja con Han Ga-in[8][9]: tuttavia, durante le riprese riceve la chiamata al servizio militare obbligatorio[10] ed è costretto a lasciare il set anzitempo, il 5 luglio 2010. Le sue scene nella serie vengono pertanto ridotte e si ricorre ad una controfigura. Kim resterà sotto le armi per due anni[11].
Terminato il servizio militare nel 2012[12], Kim produce il film-documentario Ensemble[13] e pubblica il libro di memorie Way Back to the Road, raccontando le esperienze degli ultimi due anni[14]. In seguito, è il protagonista della serie Sang-eo[15][16] e il film storico Haejeok: Badaro gan sanjeok, nei quali lavora con l'attrice Son Ye-jin[17].
Nel luglio 2013 pubblica il suo singolo di debutto in Giappone. La title track è una cover di "Roman" di Kōji Tamaki; il singolo include anche i due brani registrati da Kim per la colonna sonora di Seondeok yeo-wang, "Can't I Love You" e "Do You Still Love Now"[18].