Kim began his MLB career with the Boston Red Sox in 2001 and was traded to the Montreal Expos the next season. In his career, Kim has pitched in 110 games, starting 37, recording 13 wins against 13 losses. He was the starting pitcher of the Montreal Expos at the organization's final game at Montreal on September 29, 2004, lasting just over two innings. On September 24, Kim pitched complete game shut out against San Francisco Giants at Coors Field, leading the team's 6-0 victory.
He was acquired by the Cincinnati Reds on September 5, 2006 from the Colorado Rockies in exchange for future considerations. Kim was released from the Reds after the 2006 season. After playing one season in minor league, he signed with the Doosan Bears in the Korea Baseball Organization at the end of 2007. Kim posted 57-45 and 4.27 ERA in 6 seasons with the Bears. His career-high season was 2011, when he won 16 games (7 losses), pitching 175.2 innings in 28 games with 3.13 ERA. (Career best in Wins, Innings Pitched, and ERA) After dreadful season in 2013, (5-6, 5.52 ERA and only pitched 60.2 innings due to injury) the Bears asked Kim to retire from the Diamond and start a coaching career. With strong will to play, Kim asked the Bears for waiver, and was waived by the Bears before 2014 season. LG Twins claimed Kim off the waiver.