본관은 부림(缶林). 자는 겸선(兼善), 호는 허백당(虛白堂)·함허정(涵虛亭). 사재감정 홍순(洪淳)의 증손으로, 할아버지는 홍득우(洪得禹)이고, 아버지는 증 판서 홍효손(洪孝孫)이며, 어머니는 노집(盧緝)의 딸이다.
1460년(세조 7) 별시문과에 을과로 급제하고, 1464년 겸예문에 등용, 예문관봉교로 승직하였다. 1466년 설서가 되고 선전관을 겸하였다. 이듬해이시애(李施愛)의 난을 평정하는 데 공을 세워 공조정랑에 승직하면서 예문관응교를 겸하였다.
1469년(예종 1) 교리가 되었다가 장령이 되니 조정의 글이 모두 그의 손으로 만들어졌다. 사예가 되었을 때 외직인 영천군수로 전출하게 되자, 그의 글재주를 아낀 대제학 서거정(徐居正)의 반대로 홍문관전한과 예문관전한이 되었다. 이어 춘추관편수관이 되어 『세조실록』 편찬에 참여하였다.
그 뒤 직제학·동부승지를 거쳐 충청감사로 임명되었으나, 병으로 사직하고 부임하지 않았다. 이어 도승지로 복직했으나, 연산군의 생모 윤비(尹妃)를 왕비에서 일반인으로 폐하고 쫓아내는 모의에 반대하다가 투옥되기도 하였다.
1481년(성종 12) 천추사(千秋使)가 되어 명나라에 다녀왔다. 그리고 1483년『국조오례의주(國朝五禮儀註)』를 개정하고 충청도관찰사로 나갔다. 그 뒤 형조와 이조의 참판을 거쳐, 경주부윤·대사성·지중추부사·대제학·대사헌·우참찬·이조판서·호조판서 겸 동지경연춘추관사 등을 역임한 뒤 좌참찬이 되었다.
1498년(연산군 4) 무오사화 직전에 열 가지 폐단을 지적한 글을 올려 왕에게 간하다가 사화가 일어나자 좌천되었다. 1500년 왕명에 따라 『속국조보감(續國朝寶鑑)』·『역대명감(歷代名鑑)』을 편찬하고, 경기도관찰사가 되었다. 1504년 손녀(彦國의 딸)를 궁중에 들이라는 왕명을 거역해 장형(杖刑)을 받고 경원으로 유배 도중 교살(絞殺)되었다.
문장이 뛰어나고 글씨에도 능했으며, 성격이 강직해 부정한 권력에 굴하지 않았다. 모두들 몸을 조심하라 했으나, 태연히 말하기를 “내가 국은을 두터이 입고 이제 늙었으니 죽어도 원통할 것이 없다”고 하였다.
중종반정 후 신원(伸寃: 원통함을 풀어버림)되었다. 함창의 임호서원(臨湖書院)과 의흥의 양산서원(陽山書院)에 제향되고, 저서로는 『허백정문집(虛白亭文集)』이 있다. 시호는 문광(文匡)이다.