본관은 언양(彦陽). 자는 윤보(潤甫), 호는 서헌(西軒). 김륜(金倫)의 증손으로, 할아버지는 김경직(金敬直)이고, 아버지는 김복생(金復生)이며, 어머니는 김도탁(金都卓)의 딸로, 무당이었다고 한다.
가난한 집안에서 태어났으나, 어려서부터 학문에 증진하여, 1420년(세종 2) 식년 문과에 병과로 급제, 성균관에 들어갔다. 1435년 문명(文名)으로 집현전수찬(集賢殿修撰)에 뽑히었고, 이듬해 집현전부교리, 그 이듬해 집현전직제학으로 승진하였다.
이 때 세종이 저화(楮貨)를 개용(改用)하려 하자 이에 대한 고제(古制)를 상고하여 진언하였다. 1446년에 집현전이 항소(抗疏)하여 시사(時事)를 논할 때와 정창손(鄭昌孫)의 방면을 청하는 집현전의 모임에 참여하지 않아 비난을 받기도 하였다. 1448년 사서(四書)를 번역하는 사업을 주관한 공으로 승자(陞資)되면서 발탁이 예상되었으나 갑자기 죽었다.
1455년(세조 1)에 원종공신(原從功臣)에 추록되었다. 경사자집(經史子集)의 모든 분야에 밝았고, 특히 사학(史學)에 정통하여 궁중에 기거하면서 세종 때의 문운(文運)에 이바지하였다.
그러나 정음청(正音廳)의 국문자(國文字) 보급계획에는 최만리(崔萬理) 등과 함께 반대하였다. 저서로는 왕명에 의해 이계전과 함께 펴낸 『자치통감훈의(資治通鑑訓義)』 및 신석조(辛碩祖) 등과 함께 편찬한 『의방유취(醫方類聚)』가 있다.