Kim initially played University League at Hongik University from 2008 to 2010. Kim was then drafted in the second round of the 2011 K-League draft by Daegu FC.[2] Kim made his professional debut on 5 March 2011, playing the full 90 minutes of Daegu's opening game of the 2011 K-League season against Gwangju FC, which ended in a 2–3 loss for Daegu FC.[3]
Kim joined fellow K-League side Jeonbuk Hyundai Motors in 2013 and would help the team to win two successive K-League titles.
Shanghai Shenhua
On 19 February 2016, Kim moved to Chinese Super League club Shanghai Shenhua from Jeonbuk Hyundai Motors for a reported transfer fee of US$6 million. Kim's agent had described the deal as the "biggest transfer in Korean history".[5] On 5 March 2016, he made his debut for the club in a 1–1 draw against Yanbian Funde.