Kim graduated from Busan Technical High School in 1991. He was then signed by the Lotte Giants, and played for the Giants for eleven seasons. In 2002, Kim moved to the SK Wyverns. After the 2005 season his contract with the Wyverns ran out and he became a free agent. Before the 2006 season Kim signed with the Hanwha Eagles for four-year.
On July 16, 2008, Kim was named to the South Korea national baseball team for the 2008 Summer Olympics. Due to right ankle injury, he was mainly used as a substitute infielder or first base coach during the Olympics. But in the team's seventh game in the round-robin, against the Netherlands, Kim drew a two-out walk in the fifth off Alexander Smit and scored a run when Kim Hyun-soo hit a two-RBI single.
Kim retired for good as a player after the 2009 season but retained his assistant coaching position in the Eagles.