1453년( 단종 1) 사마시에 합격한 뒤, 식년 문과에 을과로 급제해 집현전수찬(集賢殿修撰) · 부교리를 비롯한 삼사의 요직을 거쳤다. 예종이 즉위하자 전라도관찰사가 되었고, 이어 한성부우윤, 호조참판을 거쳐, 1472년( 성종 3) 진하사부사(進賀使副使)로 명나라에 가서 황태자의 책봉을 축하하고 돌아왔다.
1473년 강원도관찰사로 나갔다가 다시 내직으로 옮겨 공조참판 · 첨지중추부사 · 동지중추부사를 역임하였다. 1478년 경상도관찰사가 되어 해인사 소장의 대장경 판목을 봉심했고, 다시 동지중추부사가 되었다.
1483년 천추사(千秋使)로 명나라에 다녀와서 이듬해 평안도관찰사가 되어 변방의 관방 시설과 군자 확보에 힘썼다. 그 뒤 한성부우윤을 거쳐 사헌부대사헌에 부임하자 임금에게 시폐(時弊)에 관한 시무책(時務策)을 올려 받아들여졌다. 이어 동지중추부사 · 첨지중추부사를 역임하고, 예조참판을 거쳐 1489년 사헌부대사헌에 재임되었다. 이 때 재이(災異) 방지책 등 시무책을 제시하였다.
1492년 한성부판윤을 거쳐 지중추부사에 임명되었다. 이듬해 정조사(正朝使)에 지명되었으나 병을 핑계로 회피해 사헌부의 탄핵을 받고 동지중추부사로 강등되었다. 연산군 즉위 후 형조판서에 올랐으며, 『 성종실록』 편찬에 참여하였다. 무오사화가 일어나자 추관(推官)이 되어 일처리에 앞장섰으며, 그 공로로 숭정대부에 승진하고 의정부좌참찬에 이어서 우찬성에 올랐다.
그 뒤 좌찬성으로서 지경연사(知經筵事) · 세자이사(世子貳師)를 겸했고, 군기시제조(軍器寺提調)가 되어 군기 개선에 노력하였다. 1504년(연산군 10) 함경도관찰사로 나갔다가 돌아와 판중추부사가 되었다.
중종반정에 동조해 정국공신(靖國功臣) 3등에 책록, 의정부좌찬성에 임명되었으며, 밀산부원군(密山府院君)에 봉해졌다. 시호는 공간(恭簡)이다.