본관은 안동(安東). 자는 귀후(歸厚). 김방경(金方慶)의 셋째아들이다.
나이 15세쯤 문음(門蔭)으로 벼슬하여 장생서승(掌牲署丞)이 되고, 뒤에 별장(別將)으로 바뀌면서 어견룡행수(御牽龍行首)가 되었다. 1279년(충렬왕 5)에 과거에 급제하여 낭장(郎將)으로 학사(學士)·직강(直講)이 되었다.
아버지 김방경이 일본을 정벌할 때 종군하고자 했으나, 허락하지 않으므로 몰래 배에 올라 종군하고 돌아와서 전중시사(殿中侍史)가 되었다.
1297년 좌부승지, 이듬해 좌승지에 오르고 광정부사(光政副使)·승지(承旨)·성균좨주(成均祭酒)·보문각학사(寶文閣學士)·지민조사(知民曹事)를 역임했으며, 다시 삼사좌사(三司左使)를 거쳐 밀직부사(密直副使)가 되어 사직했다.
충선왕이 왕위에 오르자 다시 등용되어 1312년(충선왕 4)에 중대광(重大匡)·상락군(上洛君)에 봉해졌으며, 1316년에 판삼사사(判三司事)에 올랐다. 성격이 관후하고 예서(隷書)를 잘 썼으며, 거문고와 퉁소를 즐겼다. 시호는 문영(文英)이다.