본관은 안동(安東). 자는 이수(頤叟), 호는 소양당(素養堂). 아버지는 절충장군(折衝將軍) 김숙(金潚)이며, 어머니는 호조판서 안숭선(安崇善)의 딸이다.
1453년(단종 1) 생원시에 합격하고 같은 해 식년 문과에 장원급제하여 집현전부수찬이 되었다. 1455년(세조 1)에 집현전수찬에 승진되고 이어 병조좌랑·헌납·예문관응교 등을 역임하였다.
1458년부터 1462년까지 함길·평안·강원·황해·충청 5도의 체찰사인 한명회(韓明澮)의 종사관이 되어 세조의 변방정책 수행에 주요한 소임을 담당하였다. 1463년 집의에 오르고 그 뒤 동부승지, 1465년에는 좌승지를 거쳤다.
1468년 호조참의로 세조의 『주역구결(周易口訣)』 간행에 참여하였다. 1466년(세조 12) 공조참의가 되고 이어 형조·호조의 참의를 거쳐 1470년에 대사간이 되었다. 대사간 재직시에는 성종에게 경연을 권고하는 명상소문을 남기기도 하였다.
1471년 성종을 보필한 공으로 좌리공신(佐理功臣) 4등에 책록되고 복창군(福昌君)에 봉해졌다. 뒤에 공조참판과 호조참판에 이르렀다.
경사(經史)에 밝고 문장에 능하였으며, 특히 사재(史才)가 있어서 1458년에는 『국조보감(國朝寶鑑)』 편찬에 참여하였고, 1463년에는 양성지(梁誠之)·서거정(徐居正) 등과 함께 『동국통감(東國通鑑)』을 편찬하였으며, 성종 초기에는 『세조실록(世祖實錄)』과 『예종실록(睿宗實錄)』의 편찬에도 참여하였다. 시호는 문도(文悼)이다.