본관은 전주(全州). 아버지는 추밀원부사(樞密院副使) 김경손(金慶孫)이다.
1256년(고종 43) 석릉직(碩陵直: 희종의 능지기)이 되어 내시에 적을 두었으며, 감찰사를 거쳐 충렬왕 때 경순왕후(敬順王后)의 종제라 하여 총애를 받아 대장군이 되었다.
1280년(충렬왕 6) 친교가 있던 상장군 김문비(金文庇)가 죽고 마침 자기 처도 죽자 김문비의 처와 간통하여 감찰사와 중방의 탄핵을 받고 외딴 섬으로 귀양갔다. 그뒤 풀려나 부지밀직사사(副知密直司事)와 첨의참리(僉議參理)를 지내고, 1297년 시랑찬성사판판도사사(侍郎贊成事判版圖司事), 다음 해 첨의중찬(僉議中贊) 등을 역임하였다.
1302년 첨의시랑 찬성사(僉議侍郎贊成事)로 임명되고, 다음 해 시랑찬성사 판군부사사(侍郎贊成事判軍簿司事), 1305년 우중찬(右中贊)을 거쳐, 1310년(충선왕 2) 판삼사사(判三司事)로 임명되었다.
충렬왕이 원나라에 가자, 왕을 대신하여서 행성일을 맡아보았다. 그 뒤 낙랑군(樂浪君)에 봉해지고 추성익대공신(推誠翊戴功臣)의 호를 받았으며, 다시 계림부원군(鷄林府院君)으로 개봉(改封)되었다.
성품이 너그럽고 예에 익숙하여 원나라에서 연회를 할 때 단정히 홀(笏)을 잡고 앉아서 잔에 술을 부어 돌리는 사람이 이르면 일어나 읍하고 마시니, 세조가 기뻐하여 말하기를 “이가 진실로 고려의 재상이다.”라고 하였다.
1308년(충선왕 즉위년) 국왕 부부를 초정하여 남산 서재에서 향연하였고, 이 잔치 이후 숙비(淑妃)를 잘 섬긴 결과 만년의 봉작이 계림부원군에까지 올라서 부를 열고 관료를 두었다. 시호는 충선(忠宣)이다.