Kim was a first-round pick of the Hanhwa Eagles in 2001 following a successful youth career. He made his KBO debut on April 17, 2001, as a starting first baseman against the Hyundai Unicorns. As a rookie in 2001, he hit 20 home runs and drove in 54 runs with a.335 batting average. After the 2001 season, Kim was honored with the KBO League Rookie of the Year Award. He became the first Eagles player to win the award. In 2002, Kim experienced a sophomore slump, batting.255 with 7 home runs, but came back strong in 2003 to bat.319 with 31 home runs and 95 RBIs. From 2003 through 2005, he notched three consecutive seasons batting.300+. His stats dipped slightly in 2006 and 2007, but he broke out again in 2008, batting.324 with 31 home runs and 92 RBIs. He was first in home runs and slugging percentage, 4th in RBI, and 5th in batting average. Kim performed spectacularly in the 2009 World Baseball Classic, driving in 11 runs to lead all players, as well as scoring nine runs. As a result, he was named to the 2009 All WBC Team as the first baseman. Kim left the KBO for Nippon Professional Baseball in 2010–2011, playing for the Chiba Lotte Marines. He had success his first year in the NPB, hitting.268 with 21 home runs and 92 RBI. 2011 was not as successful, as Kim only played in 31 games and hit only.250. He returned to the Hanhwa Eagles in 2012, and has played with them ever since. In his first season back in the KBO League, Kim hit.363 to lead the league. He hit.365 in both 2014 and 2016, finishing second in the batting title both seasons. His 136 RBI in 2016 was also second in the league. On 6 June 2020, Kim became the youngest player in the KBO to reach the career milestone of 3,500 total bases. Kim was the fourth player in the KBO League to reach 3,500 total bases in his career, and the first right-handed hitter to do it, after lefties Yang Joon-hyuk, Lee Seung-yuop, and Park Yong-taik. He is also the youngest to ever do it, about two months ahead of Yang, who was 38 years old, two months, and nine days old.
Personal life
Kim was Cheongan-si Ambassador to Chungcheongnam-do in April 2009. He was a Neowiz Games Slugger PR Ambassador in May 2009. He was a Korean Red Cross Ambassador in 2013 and May 2014. He was a Good Driver's Mileage Ambassador in July 2013.