본관은 안동(安東). 자는 평보(平甫), 호는 낙포(洛圃). 고조는 김방경(金方慶)이고, 할아버지는 김영후(金永煦)이며, 아버지는 부지밀직사사 김천(金蕆)이다.
음보로 앵계관직(鶯溪館直)이 된 뒤 감찰규정(監察糾正)을 거쳐, 공민왕 때 문과에 급제해 조준(趙浚) 등과 함께 대간을 지냈다. 뒤에 개성윤(開城尹)이 되어 보리공신(輔理功臣)의 호를 받았다.
이성계(李成桂)가 위화도회군을 단행한 뒤, 교주강릉도도관찰출척사(交州江陵道都觀察黜陟使)로 나갔고, 1390년(공양왕 2) 지밀직사사 겸 대사헌이 되고 이어 지문하부사(知門下府事)로 승진하였다.
1390년 윤이(尹彛)·이초(李初)의 옥이 있은 뒤 그 당을 둘러싸고 찬성사(贊成事) 정몽주와 대결하고 서로 탄핵하였다. 삼사좌사(三司左使)·동판도평의사사(同判都評議司事)로 있다가 여러 장상들과 함께 이성계를 추대해 개국공신 1등에 봉해지고, 문하시랑찬성사 겸 판상서사사 겸 병조전서응양상장군(門下侍郎贊成事兼判尙瑞司事兼兵曹典書鷹揚上將軍)에 올랐다.
같은 해 12월 문하우시중에 제수되고, 상락백(上洛伯)의 작위와 식읍 1,000호 및 식실봉(食實封) 300호를 받았다. 1396년(태조 5)에 오도병마도통처치사(五道兵馬都統處置使)가 되어 대마도를 정벌하였다.
1398년(태조 7) 제1차 왕자의 난 때, 백관을 거느리고 대궐에 가 적장(嫡長)을 후사로 세울 것을 요청해 정종의 즉위를 도운 공으로 정사공신(定社功臣) 1등에 책록되었다.
1399년(정종 1) 등극사로 명나라에 다녀와서 이듬해 판문하부사(判門下府事), 1401년 좌정승에 임명되고 이듬해 영사평부사를 지낸 다음, 상락부원군(上洛府院君)에 봉해진 뒤 관직에서 물러났다.
개국공신 중에서는 배극렴(裵克廉) 다음으로 지위가 높았던 고려의 원로 구신이며, 가문이 귀하고 높았으며 마음이 청고해 이성계가 아꼈다고 한다. 조준과 함께 8년간 재상의 지위에 있었으나 정사는 모두 조준이 결단하였다. 대신 말을 신중히 하고 스스로 삼가며 분수를 지켜 조준의 의견에 따랐으며 적을 가지지 않았다.
개국공신 1등에 책봉된 것은 공이 컸기 때문이 아니며, 처음에는 이성계를 추대하는 데 참여하지 않았다고도 한다. 시호는 익원(翼元)이다.