본관은 안동(安東). 자는 취사(取斯), 호는 보백당(寶白堂). 김득우(金得雨)의 증손으로, 할아버지는 김혁(金革)이고, 아버지는 비안현감 김삼근(金三近)이며, 어머니는 김전(金腆)의 딸이다.
1447년 진사가 되고 성균관에 입학하여 김종직(金宗直) 등과 교유하며 학문을 익혔다. 그 뒤 성주·충주의 향학교수를 지냈고 1480년(성종 11) 식년 문과에 병과로 급제하고 사헌부감찰(司憲府監察)에 제수되어 직언을 잘하였다.
이어서 고령현감이 되어 선정을 펴고 내직으로 옮겨 홍문관부수찬이 되었으며, 그 뒤 삼사의 요직을 두루 역임하며 간쟁업무에 힘썼다. 1498년(연산군 4) 대사간에 올라 권간(權奸)을 극론하였으나 훈구파에 의해 제지되자, 벼슬을 버리고 고향인 안동으로 낙향하였다.
풍산사제(豊山笥堤) 위에 조그만 정자를 지어 ‘보백당(寶白堂)’이라 하고 학생을 모아 가르치니 보백선생(寶白先生)이라 불리었다. 김종직 등과 교유한 것으로 말미암아 무오사화·갑자사화에 연루되어 투옥되었으나 다행히 큰 화는 면하였다.
1706년(숙종 32) 지방유생들이 덕망을 추모하여 안동에 묵계서원(默溪書院)을 짓고 향사하였다. 1859년(철종 10)에 이조판서에 추증되었다. 시호는 정헌(定獻)이다.