본관은 남양(南陽). 자는 성오(省吾). 홍기서(洪箕叙)의 증손으로, 할아버지는 홍택(洪澤)이고, 아버지는 유학 홍정준(洪廷準)이며, 어머니는 이만길(李萬吉)의 딸이다. 판서 남태회(南泰會)의 사위이다.
1761년(영조 37) 정시 문과에 병과로 급제해 관직에 나갔고, 1763년(영조 39) 설서(說書)에 재직 중 문과 시관(試官)으로 활약한 뒤 지평(持平)에 제수되었다. 1766년 수찬을 거쳐 헌납(獻納) 재직시 대론(臺論)의 문제로 기장현(機張縣)에 정배(定配)되었다가 석방되었다.
이듬 해 헌납을 거쳐 부수찬(副修撰)에 임명되고, 이 때 영조가 지제교(知製敎) 당상·당하에게 보인 제술시험에서 우수한 성적을 거둬 말이 하사되기도 했다.
이어 사서(司書)로 옮겼다가 1768년에는 부교리(副校理)·겸사서(兼司書)·부수찬(副修撰)·겸필선(兼弼善)·교리(校理)·헌납(獻納)·집의(執義) 등을 거쳐 인제현감으로 파견되어 목민 업무를 수행하였다. 그 뒤 사헌부집의로 복귀하고 부수찬 등을 지냈다.
1770년 사간(司諫)에 올라 어사(御史)로 파견되었고, 이어 집의·수찬을 역임하였다. 이듬 해 보덕·집의·부수찬·수찬 등을 거치는 동안 영조가 친히 간행한 『황명통기(皇明統紀)』의 감동관(監董官)으로 공을 인정받아 가자(加資)되고, 이어 승지에 제수되었다.
1771년 대사간에 오르고, 이듬 해 특별히 이조참의(吏曹參議)에 제수되었으나 패초(牌招)를 어겨 나가지 않았다가 이듬 해 9월 대사간에 다시 임명되었다.
1775년 이조참의 때 납언(納言: 사헌부·사간원의 관원이 임금에게 아뢴 말)에 의망(擬望)하는 인사가 잘못되었다는 채홍리(蔡弘履)의 탄핵으로 종중추고(從重推考) 되었으나 이듬 해 2월 이조참의에 복귀하였다.
정조 즉위 뒤 승지로 있으면서 1778년(정조 2) 명릉(明陵)의 곡장(曲墻) 봉심(奉審)을 소홀히 한 예조 당상들을 신칙(伸飭)하지 않고 패초를 청했다는 영의정 김상철(金尙喆)의 탄핵으로 파직되었다. 그러다가 이듬 해 도총부부총관(都摠府副摠管)으로 발탁되고, 이어 동지 겸 사은정사(冬至兼謝恩正使) 황인점(黃仁點)과 함께 사은부사로 중국에 다녀왔다.
1780년(정조 4)부터 대사간·대사헌·대사성직을 지내는 동안 가례도감제조(嘉禮都監提調)를 겸하고, 1790년(정조 14) 한성부판윤에 임명된 후에도 대사헌·동지의금부사·대사간 등을 두루 지냈다.