Upon graduation from Inha University in Incheon, Song made himself eligible for the 1996 KBO Draft and was selected in the second round by the Hanwha Eagles.
In 1999, Song joined his first 20-20 club and became a member of the Korean Series championship team. In 2000, he joined his second 20-20 club, batting a career-high .338 and having his first 30+ home run season (32), and won his first KBO League Golden Glove Award after the season.
In 2002, Song posted career-highs in home runs (38) and RBI (104), and won his second Golden Glove Award. However, Song was hampered by arm injuries during the whole 2003 season, batting only .253 and hitting a career-low 9 home runs.
Hyundai Unicorns
After the 2003 season, Song was traded to the Hyundai Unicorns. In 2004, he smacked 22 home runs and drove in 74 runs, and led his team to their last Korean Series championship. In 2005, Song had another solid season with the Unicorns, batting a respectable .271 and amassing 24 home runs and 74 RBI. After the 2005 season, he was selected as a member of the South Korea national baseball team. He competed in the inaugural World Baseball Classic in March 2006.
Nexen Heroes
In the early 2000s (decade) Hyundai Group ran into financial problems, and eventually abandoned the Unicorns in 2007. The team was sold and became the Heroes. During a series of "fire sales" for the Unicorns' best players and franchises in the 2007 offseason, the Heroes kept attempting to trade Song for another big deal. However, prior to the 2008 season, Song announced that he would stay with the Heroes, accepting the 60% salary cut offered by the team. In 2008, Song batted .280, accumulating 13 home runs and 62 RBI. On April 20, 2008, he hit his 250th home run, which at that point was good for ninth-place in KBO history.
In 2009, Song had an offensively productive season again, batting .289 and posting 22 home runs and 67 RBI. On May 19, 2009, he made the 1700th hit of his career, which at that point was the fifth-highest total in KBO history.