본관은 김해(金海). 자는 사렴(士廉), 호는 괴애(乖崖). 아버지는 김강의(金剛毅)이다.
학식이 뛰어나 일찍이 생원시와 진사시에 잇달아 합격하고, 1459년(세조 5) 식년 문과에 정과로 급제해 한림이 되었다.
특히, 시문에 능해 1464년 세조가 양성지(梁誠之) 등에게 명해 연소한 문신을 육문(六門)으로 나누어 배정할 때, 성현(成俔)·유순(柳洵) 등과 함께 시학문(詩學門)에 선발되었다. 이어 예문관대교에 올랐으며, 당시 발영시에 수석으로 합격하였다.
그 뒤 승문원교리로서 조운사종사관(漕運使從事官)으로 활약, 경상도 연변의 군량미 10만 석을 함경도로 운송하는 공로를 세웠다. 세조가 죽자 예문관부교리로서 『세조실록(世祖實錄)』 편찬에 참여했고, 장령·예문관응교를 역임하였다. 그 뒤 『예종실록(睿宗實錄)』 편찬에 참여하고, 성종 초년에는 목민관으로 나가 뛰어난 치적을 보였다.
이어 사표(師表)로 추천되었으며, 1477년 다시 장령을 역임하였다. 이 때 신주(辛柱)의 분경죄를 다스리지 못해 고신(告身)을 빼앗겼다. 그 뒤 1482년 사간이 되었고, 1485년에 충청도진휼사의 종사관으로 나가 빈민 구제에 힘썼다. 1487년 승정원으로 옮겨 동부승지·우부승지·좌부승지·우승지 등을 역임하고, 1491년 홍문관부제학에 올랐다.
그 때 언관으로서 크게 활약해 제천정(濟川亭)의 역사(役事)가 불가함을 주장하고, 여진 정벌의 부당함을 역설하며, 언론의 기능 정상화를 요구하였다. 이로 인하여 성종에게 기피되어 1개월 만에 전라도관찰사에 제수되었다.
이듬해 동지중추부사가 되고 정조사로서 명나라에 다녀왔는데, 조공의 방물을 도둑맞아 다시 고신을 환수당하였다. 그 뒤, 한성부우윤을 거쳐 호조참판에 올랐고, 다시 동지중추부사가 되었으며, 성종이 죽자 『성종실록(成宗實錄)』편찬에 참여하였다. 연산군 때에 지중추부사에 이르렀다가 졸하였다. 문장에 능했고 성품은 청렴 강직하였다.