본관은 풍산(豊山). 자는 백기(伯起), 호는 허백당(虛白堂). 할아버지는 김종석(金從石)이고, 아버지는 진산군수 김휘손(金徽孫)이며, 어머니는 민효열(閔孝悅)의 딸이다.
7세에 문장을 잘 지어 서거정(徐居正)에게 크게 칭찬을 받았다. 장성하면서 정효항(鄭孝恒)의 문하에 들어가 학업을 익혔다.
1489년(성종 20) 진사시에 합격하고, 1497년(연산군 3) 별시 문과에 급제해 홍문관저작(弘文館著作)에 임명되었다. 1503년 부수찬(副修撰)으로서 연산군의 생모인 폐비 윤씨의 묘호 추존(廟號追尊)을 적극 반대하다가 왕의 노여움을 사서 예천에 정배되었다. 1506년의 중종반정 후 귀양에서 돌아와 형조좌랑으로 기용되었다. 이어서 헌납(獻納)·집의(執義) 등 청요직(淸要職)을 역임하면서 당시 폐단이 큰 고리대금의 개선을 도모하였다.
1513년(중종 8) 역학에 밝아 김안국(金安國)·이행(李荇) 등과 더불어 사유(師儒)로 뽑혔으며, 1517년 사간원 대사간에 임명되었다. 그러나 천거과(薦擧科)의 불편을 말했다가 사림의 탄핵을 받아 영해부사로 전출되었다. 1519년 기묘사화로 남곤 등이 정권을 장악하자, 형조참의로 발탁되었다가 바로 대사간으로 승진하였다.
이듬해 전라도관찰사가 되었다. 마침 도내에서 사위 김윤종(金胤宗)이 죄를 범하고 도주해 체포의 문제가 있었으나 무난히 임기를 마쳤다. 이어서 승정원에 들어가 동부승지·좌부승지·우승지를 거친 다음 이조·예조의 참의를 각기 역임하였다.
이 때에 김안로(金安老)의 아들 김희(金禧)가 중종의 부마로서 흉년임에도 불구하고 호화 저택을 짓는 공사를 벌이자, 이를 탄핵하다가 김안로의 미움을 받아 황해도관찰사로 전출되었다. 그 뒤 잠시 공조참판과 충청도관찰사에 임명되기도 했으나, 대체로 한직(閑職)에 머물렀다. 1535년 왕이 송도에 행차했을 때, 유도재상(留都宰相)으로 숙위(宿衛)에 임하다가 죽었다.
성품이 파당과 꾸밈을 싫어했고, 음주를 즐기며 학문에 밝아 이행·정희량(鄭希良)·권달수(權達手) 등과 교유가 깊었다. 학문은 특히 역학·음양 및 복서(卜筮)에 통달하였다. 중종 때 청백리에 뽑혔고, 안동의 물계서원(勿溪書院)에 제향되었다.