In 1991, Kim debuted as a professional player with Pohang Steelers (then POSCO Atoms) right after his graduation from high school, which was quite unusual then. (Choi Moon-Sik would be a similar case.) He started to appear in the top team matches after joining Yukong Elephants (Bucheon SK after 1996). Bucheon at that time was highly recognized to have a strong midfield under manager Valeri Nepomniachi, and he was a key member.
Kim returned to Pohang in 2003 and led the Steelers to the championship in 2007. He was also selected as the 'best eleven' of the league in 2007. He now holds 2nd place in career domestic appearance (league and cups) in K-League, only after goalkeeper Kim Byung-Ji.
On July 9, 2011 he became the oldest ever score in the K-League with his goal in the 7-0 victory over Daejeon Citizen.