본관은 언양(彦陽). 자는 손지(損之). 아버지는 문하시랑평장사(門下侍郎平章事) 김전(金佺)이며, 시중(侍中) 김취려(金就礪)의 손자이다.
1263년(원종 4) 문음(門蔭)으로 동북면 도감판관(都監判官)에 임명되고 1268년 봄 과거에 급제한 뒤 이듬해 국자박사(國子博士), 1270년 합문지후(閤門祗候)를 거쳐 충렬왕이 세자로서 원에 들어갈 때는 예부낭중(禮部郎中)으로 따라가 4년간 원에서 충렬왕을 보좌하였다.
이러한 공으로 1274년 충렬왕이 즉위하자 함께 귀국하여 이등공신에 녹훈되고 충렬왕으로부터 “너의 공은 큰데 나의 상은 작구나. 너에게 비록 죄가 있더라도 열번 범하면 아홉번은 용서할 것이며 자손들에게도 역시 같이 하리라.”는 내용의 서권(誓券)을 받기까지 하였다.
1277년 안중도(按中道)에 출보(出補)되고 1285년 이조(吏曹) 등의 판서를 거쳤다. 1290년 정당문학(政堂文學) 정가신(鄭可臣)과 함께, 동지공거(同知貢擧)로서 과거를 주관하였으며, 1295년 판비서시사(判祕書寺事)로서 동수국사(同修國史) 임익(任翊)과 원나라 세조(世祖)의 사적(事蹟)을 찬(撰)하였다.
이해에 우승지, 1298년 부지밀직사사(副知密直司事)·서북면도지휘사(西北面都指揮使)·감찰대부(監察大夫)를 거쳐 이듬해 판삼사사(判三司事)·지도첨의사사(知都僉議司事)를 지냈으며, 그리고 1300년에 첨의참리(僉議參理)·집현전대학사(集賢殿大學士)·동수국사를 역임하였다. 시호는 문신(文愼)이다.