본관은 부안(扶安). 자는 자윤(子胤). 김광서(金光敍)의 증손으로, 할아버지는 김당(金璫)이고, 아버지는 사온서직장(司醞署直長) 김회윤(金懷允)이며, 어머니는 송광선(宋光善)의 딸이다.
어려서부터 도량이 크고, 자라면서 경사(經史)를 열심히 공부하여 1463년(세조 9) 생원시에 합격하고, 이어 1469년(예종 1) 식년 문과에 병과로 급제하여 예문관검열에 제수되었다. 『예종실록(睿宗實錄)』 편찬에 참여하였고, 1472년(성종 3)에는 왕명으로 각사(各司)의 비위를 척간(擲奸: 조사하여 알아냄)하였다.
그 뒤 사부학당(四部學堂)의 교수가 되어 교육진흥에 힘썼다. 이어서 정언(正言)이 되어 유자광(柳子光)의 직첩을 환수할 것을 주장하였고, 안중좌(安仲佐)·홍이로(洪利老) 등의 부당한 임명에 서경(署經)을 거부하였다.
그 뒤 외직으로 나가 한산군수로서 선정을 폈고, 다시 내직으로 옮겨 사도시첨정(司導寺僉正)이 되었다가 얼마 지나지 않아 사망하였다. 성품이 청렴강직하고 사치를 싫어하기로 소문이 나서 읍리(邑吏)들이 두려워하였다.