첫 이름은 김지정(金之琔). 고친 이름이 김정미(金廷美)인데, 충선왕이 김이라는 이름으로 고쳐주었다. 자는 열심(悅心) 또는 은지(隱之). 복주(福州: 지금의 경상북도 안동)의 춘양현(春陽縣) 출신이다. 어머니의 꿈에 하늘이 온통 붉은데, 해가 붉은 햇무리를 띠고 품안으로 들어오는 것을 보고 임신해 김이를 낳았다 한다.
10여 세에 도평의사의 서리(胥吏)가 되었다. 1288년(충렬왕 14) 왕에게 칭찬을 받는 꿈을 꾸고, 그 해 장흥부(長興府)의 수령이 되었다. 1290년 원나라의 반적(叛賊) 합단(哈丹)이 침입하자, 나라에서 백성들에게 험지(險地)로 피난하고 농사를 짓지 못하게 하였다.
그러나, “한 지아비가 밭을 갈지 않으면 천하가 굶주림을 받을 것이니 영(令)을 좇는다면 굶어 죽는 자가 많을 것이요, 좇지 않고 밭을 갈면 죄를 받는 자는 나다.”라 하고, 영을 어기고 백성들에게 농사를 짓게 하였다. 과연 적은 오지 않았고, 장흥부는 물론 이웃의 주군(州郡)까지도 굶주림을 면하게 하였다.
1292년(충렬왕 18) 내시직(內侍職)에 종사했으며, 1298년 원나라에서 충선왕을 시종해 왕 부자(父子)를 이간시키려는 간신배를 제거하는 데 공이 컸다. 판도정랑(版圖正郎)이 되었다가 1308년에 충선왕이 복위하자 귀국해 민부시랑(民部侍郎)·시내부령 겸 선공부령(試內府令兼繕工副令)·도진장(都津長)이 되었다.
다시 개성소윤 겸 풍저광흥창의영고제용사사(開城少尹兼豊儲廣興倉義盈庫濟用司事)가 되어 모든 전곡(錢穀)의 출납을 맡았다.
1309년(충선왕 1)에 사헌집의와 우부승지를 거쳐, 1310년 밀직부사가 되었다. 1313년 충선왕이 원나라에 있을 때, 임조(臨洮: 감숙성)에 장배(杖配)된 김심(金深)·이사온(李思溫) 일당으로 의심받았다.
그래서 아들 김문귀(金文貴)와 함께 순군(巡軍)에서 국문을 받은 뒤, 기장감무(機張監務)로 좌천되었으며, 아들은 합포(合浦: 지금의 경상남도 마산)로 귀양갔고 가산을 몰수당하였다. 1313년(충숙왕 즉위년) 동지밀직사사에 이어 첨의평리(僉議評理)가 되었으며, 수성보절공신(輸誠保節功臣)에 봉해졌다.
1316년 의비(懿妃: 야련진, 충숙왕의 생모)가 원나라에서 죽자, 왕이 그곳에 장사지내려 하는 것을 극력 말려 연릉(衍陵)에 환장(還葬)하게 하였다. 1320년에 찬성사가 되고 경산군(慶山君)에 봉해졌다. 1321년(충숙왕 8)권한공(權漢功)·채홍철(蔡洪哲) 등에 연좌되어 순군옥에 갇혔다가 석방되었다.
이 때 유청신(柳淸臣)·오잠(吳潛) 등이 왕위를 심왕(瀋王) 왕고(王暠)에게 전하게 하고, 입성음모(立省陰謀)를 꾸며, 고려에 행성을 설치함과 동시에 고려의 국호를 폐지할 것을 원나라에 청하였다. 원나라에서 이를 실행하려 하자, 최성지(崔誠之)·이제현(李齊賢) 등과 함께 원나라 도당(都堂)에 상서해 이를 중지하게 하였다.
1324년 다시 찬성사가 되었고, 1326년 첨의정승이 되었다. 1327년 첨의중찬이 되고, 추충보절동덕공신(推忠保節同德功臣)에 봉해졌다.
시호는 광정(匡定)이다.