본관은 광산(光山). 아버지는 지도첨의사(知都僉議事) 김주정(金周鼎)이다.
1279년(충렬왕 5) 김흔(金忻) 등과 함께 뚤루게로 원나라에 다녀온 뒤 낭장이 되었고, 1298년에 우부승지가 되었다.
1303년(충렬왕 29) 충선왕이 원나라에 있을 때, 오기(吳祁) · 석천보(石天輔) 등이 충렬왕의 총애를 믿고 왕의 부자를 이간하므로 홍자번(洪子蕃) 등과 함께 삼군을 이끌어 오기를 잡아 원나라에 보냈다.
그 해 동지밀직사사(同知密直司事)가 되었고, 1304년 밀직부사(密直副使)가 되어 오기 등을 처벌해준 데 대한 표(表)를 원나라에 갖다 준 뒤, 지밀직사사로 승진하고, 아버지의 직을 이어서 만호(萬戶)가 되었다.
1305년 충렬왕을 따라 원나라에 들어갔다가, 충선왕과 함께 돌아와 도첨의참리판삼사사(都僉議參理判三司事)가 되었다. 1307년 동녀(童女) 18명을 데리고 원나라에 다녀왔다. 1309년(충선왕 1)에 딸이 원나라 인종의 비가 되자, 원나라의 세력으로 고려도원수(高麗都元帥)에 올랐으며, 이어 찬성사가 되었다.
1310년 밀직사가 되고 화평군(化平君)에 봉해졌다. 당시 원나라에 가 있던 충선왕은 전지(傳旨)로 정치를 하면서 본국의 물자만 소비하였는데, 이것을 권한공(權漢功) · 최성지(崔誠之) · 박경량(朴景亮) 등의 소행이라 생각하였다. 이에 이들의 죄상을 원나라의 휘정원(徽政院)에 탄원해 옥에 가두도록 하였다.
그러나 충선왕이 원나라의 태후에게 석방해주도록 탄원하고, 권한공 등도 뇌물을 써서 풀려나게 되자, 도리어 이사온(李思溫) 등과 함께 임조[臨洮: 감숙성(甘肅省)]에 장류(杖流)되어 5년 만에 풀려났다.
1324년(충숙왕 11) 수첨의정승 판총부사 여절보안공신(守僉議政丞判摠部事礪節保安功臣)이 되고, 다시 수성수의충량공신 화평부원군(輸誠守義忠亮功臣化平府院君)으로 개봉되고, 협보공신(協輔功臣)의 호를 받았다. 1327년 충숙왕이 원나라에 있을 때, 보좌한 공으로 일등공신이 되었다.
당시 섭행정동성사(攝行征東省事) 장백상(蔣伯祥)이 재물을 탐내고 권세를 남용해 백성의 원망이 커지자, 원나라에서 객성태사(客省太史) 도치(都赤)를 보내어 장백상을 가둔 뒤, 홍수(洪綬)와 함께 성사(省事)를 대행하게 하였다.
1330년(충혜왕 즉위년) 벼슬이 도첨의중찬(都僉議中贊)에 이르렀다.
시호는 충숙(忠肅)이다.