After attending Chung-Ang University, Kim joined newly formed K League club Incheon United in 2004.
In January 2005, Kim joined Partizan on an 18-month loan deal, receiving the number 13 shirt.
[1] He made eight league appearances until the end of the season, helping the club win the championship title with an unbeaten record.
He was also capped for the national under-23 team at the 2006 Asian Games, as South Korea lost in the bronze-medal match.
Between 2006 and 2013, Kim was capped 29 times for South Korea at full level, scoring five goals.