본관은 광산(光山). 자는 자보(子寶). 아버지는 김효민(金孝敏)이며, 어머니는 박중유(朴仲游)의 딸이다.
일찍이 진사시에 합격하고 1442년(세종 24) 친시문과(親試文科)에 병과로 급제하여 교서관정자(校書館正字)에 제수되었다. 그 뒤 박사에 승진하였고, 1450년 외직으로 옮겨 석성현감(石城縣監)을 지냈다.
이어서 성균관주부(成均館主簿), 지평(持平)을 거쳐 1461년(세조 7) 전첨(典籤)이 되었고 1463년 보덕(輔德)이 되었으며, 이듬해 지사간원사(知司諫院事) 등을 역임하였다. 1467년 통정대부에 올라 판결사(判決事)가 되었다.
1468년 사은사가 되어 명나라를 다녀왔으며, 예종이 즉위하자 충청도관찰사에 제수되었다. 1471년(성종 2) 형조참의를 거쳐, 외직으로 나가 전라도 · 경기도 관찰사를 역임하며 지방행정을 주관하였다.
이듬해 공조참판 · 호조참판 · 병조참판을 거쳐 1475년 성절사(聖節使)가 되어 명나라에 다녀왔으며, 이후 개성부유수를 지내고, 1479년 대사헌이 되었다.
이듬해 공조판서에 올랐으나, 안질로 실명하여 사임하였다. 성품이 과감하고 결단성이 강하여 공무를 잘 처리하였다. 시호는 공숙(恭肅)이다.