본관은 의성(義城). 아버지는 판서 김석아(金錫我)이다.
1432년(세종 14) 생원으로 식년 문과에 을과로 급제하고, 1443년 우헌납(右獻納)이 되었으며, 양전(量田: 토지조사)에 대한 편의정책을 올렸다.
이듬해 지평(持平)이 되고, 1450년(문종 즉위년) 사예(司藝)로서 충청·전라·경상도체찰사의 종사관이 되어 연변의 주·현의 성터를 살폈다. 이듬해 성주목사가 되어 하삼도(下三道)의 축성사업을 전담하였다.
1453년(단종 1) 형조참의에 이어 겸지병조사로 경상도에 가서 거제성 쌓는 것을 감독하였다. 이듬해 경상도관찰사가 되고, 1455년(세조 1) 형조참판이 되어 명나라에 다녀왔다.
이듬해 할머니의 상으로 경상도 영산에 거처하였으나, 특명으로 기복(起復)하여 동지중추원사가 되었다. 1457년 대사헌·이조참판·병조참판이 되었으며, 가을에 동여진(東女眞) 부락에 살고 있는 낭북얼케(浪卜兒哈)에 이어서 그의 아들 아비차(阿比車)가 변방을 침입해오자 이를 토벌, 평정하였다.
1459년 경창부윤 겸 경상도관찰사·한성부윤·호조참판을 거쳐 경기·강원도진휼사가 되었고, 이듬해 양성지(梁誠之)와 함께 명나라에 가서 명나라 사신 장녕(張寧)이 가지고 왔던 칙유(勅諭)의 뜻을 아뢰고, 또 자유책로(刺楡柵路: 국경 부근에 나무로 만든 경계를 일부 헐어 길로 틈)를 청한 것을 보고하고 돌아왔다.
1461년 동지중추원사가 되었으며, 시호는 희헌(僖憲)이다.