본관은 언양(彦陽). 증조부는 첨의참리를 지낸 김변(金賆)이며, 아버지는 언양부원군 김윤(金倫)이다.
1344년(충목왕 즉위년) 도관정랑(都官正郎)에 임명되어 서연(書筵)에서 시독(侍讀)하였다.
1353년(공민왕 2) 군부판서(軍簿判書)로 원나라 태자의 책봉을 하례하고 돌아왔고, 3년 뒤 다시 추밀원사(樞密院使)로 원나라 태자의 천추절(千秋節)을 하례하고 돌아왔다. 1357년 지공거(知貢擧) 이인복(李仁復)과 함께 동지공거(同知貢擧)로서 진사와 염흥방(廉興邦) 등 33인의 급제자를 선발하였다.
1359년 서해도도지휘사(西海道都指揮使)에 임명되어 홍건적을 방어하였다. 1361년 홍건적이 개경을 함락하자 적을 피하여 복주(福州: 지금의 경상북도 안동)로 남행할 때 왕을 호종하였고, 이듬해 3월에 이공수(李公遂)·황상(黃裳)과 함께 경성을 지킨 공으로 1등공신이 되었으나, 1363년에는 순천부에 유배되었다.