공주김씨(公州金氏)의 시조. 자는 문백(文伯). 아버지는 직장 김만의(金萬義)이고, 어머니는 한씨(韓氏)이다.
1460년(세조 6) 평양에 순행한 세조가 평안도와 황해도 유생에게 보인 별시 문과에 병과로 급제하였다.
그 뒤 이조정랑·장령·집의·사옹원정·대제학 등을 역임하였다. 1469년(성종 즉위년) 평안도에 흉년이 들자 점마별감(點馬別監)이었던 김학기를 보내 농삿일을 살피도록 하려 하자 신숙주(申叔舟)가 아직 조정관리로서 정사에 정통하지 못함을 이유로 다른 사람을 보내게 하였다.
1478년에 노사신(盧思愼)·강희맹(姜希孟)·서거정(徐居正)·최숙정(崔淑精) 등과 함께『동문선(東文選)』 편찬에 참여하고, 1482년에 『소문충공집(蘇文忠公集)』 가운데 어려운 부분을 주해하는 데 참여하였다.
또, 서예를 잘하여 세조의 화살통에 “바닷가 정자에 달이 먼저 비추이고, 남쪽에 있는 꽃가지에 봄이 먼저 이른다(近水樓臺先得月 向陽花木易爲春).”라는 시구를 써주었고, 우의정 윤사흔(尹士昕)의 비문을 쓰기도 하였다.
1481년에는 금주령이 내려져 있었는데 무사들이 사후(射侯) 때 음주 여부를 논의하자, “예외없이 금주령에 따라야 된다.”고 주장하는 강직한 성품을 보였다.