본관은 광산(光山). 아버지는 밀직부사를 지낸 김정(金精)이다.
아버지가 신돈(辛旽)을 죽이려고 모의하다가 발각되어 살해당하자 피신하였다가, 신돈이 주살된 뒤에 나와서 원수로 왜구와의 싸움에 참가하였다.
1388년(우왕 14) 7월 전라도부원수로서 광주(光州)에 침입한 왜구를 격퇴시킨 것을 비롯하여 전라도도절제사·전라도원수 등으로서 왜구와의 싸움에 나아가 구례 등지에서 크게 승리하였다.
그러나 1390년 윤이(尹彛)·이초(李初)의 옥사에 연루되어 봉주(鳳州)에 숨어 있다가 붙잡혔으나, 다음 날 다시 도망하여 포위를 뚫고 평양에 이르러 전 판사 권충(權忠)의 집에 피신하였다.
이때 이방춘(李芳春)·김식(金軾)·이중화(李仲和) 및 서경천호(西京千戶) 윤구택(尹龜澤) 등과 이성계(李成桂)를 죽일 모의를 꾀하다가 윤구택의 밀고로 발각되자 다시 도망하여 곡주(谷州)의 숲속에 숨었다. 그러나 추위와 굶주림으로 지친 끝에 순군진무(巡軍鎭撫) 임순영(任純永)에게 붙잡혀 심문을 받다가 죽었다.