본관은 창녕(昌寧). 자는 여회(如晦), 호는 일로당(佚老堂). 성엄(成揜)의 증손으로, 할아버지는 판한성부사(判漢城府事) 성염조(成念祖)이고, 아버지는 좌참찬 성임(成任)이다. 어머니는 군자감주부(軍資監主簿) 허말석(許末石)의 딸이다.
1468년(세조 14) 사마시를 거쳐 진사로서 1475년(성종 6) 알성 문과에 병과로 급제하였다. 이듬해 서장관(書狀官)으로 명나라에 다녀왔다. 1483년 사간원정언(司諫院正言)을 지내고 공조좌랑·사헌부지평(司憲府持平)·홍문관전한(弘文館典翰) 등을 역임하였다.
1489년 왕명으로 경기 지방에 암행어사로 나아가 농작의 상태를 조사하고 돌아와 이듬해 집의에 올랐다. 이 때 인사 부정(人事不正)을 묵인했다 하여 홍문관의 탄핵을 받고 물러났다. 1493년 전한으로 복직되어 임광재(任光載) 등 외척의 횡포를 견제할 것을 주장하였다.
이듬해 부제학이 되어서는 시무책을 제시하여 토지제도와 공법제도의 문제점을 지적하고 언론을 중시할 것을 제의하였다. 1495년 연산군이 즉위하자 대사간이 되어 여러 대군(大君)과 상궁(尙宮)의 복호를 파할 것을 주장하고, 이어 병조참지가 되어 폐비 윤씨의 추존을 강경히 반대하였다.
그 뒤 동부승지·좌승지·도승지 등을 역임하고 동지돈녕부사로 체직되었다가 개성부유수·형조참판 등을 거쳤다. 1504년(연산군 10) 대사헌이 되었으나 갑자사화로 한성부좌윤으로 좌천되었다. 이듬해 진향사(進香使)로 명나라에 다녀와서 연산군에게 명나라 황제는 경연(經筵)에 부지런히 임한다는 말을 했다가 미움을 받아 파직되었다.
1506년 중종반정으로 다시 겸지춘추관사가 되어 『연산군일기(燕山君日記)』를 수찬했고, 1508년(중종 3) 지돈녕부사가 되었다. 정자를 짓고 편액을 ‘춘휘정(春輝亭)’이라 했으며, 그림·글씨로써 스스로를 즐겼다. 시호는 평안(平安)이다.