본관은 청주(淸州). 자는 혜보(徯甫), 호는 병산(甹山). 한종범(韓宗範)의 증손으로, 할아버지는 한세장(韓世章)이고, 아버지는 한광적(韓光廸)이며, 어머니는 민명인(閔命寅)의 딸이다.
1784년(정조 8) 정시문과에 장원급제한 뒤 바로 초계문신(抄啓文臣 : 당하관 가운데 문학에 뛰어나 시험관으로 뽑힌 문신)으로 뽑혔다. 1792년 홍문록(弘文錄: 홍문관의 제학이나 교리를 선발하기 위한 제1차 인사기록)·도당록(都堂錄: 홍문관의 제학이나 교리를 선발하기 위한 제1차 인사 기록)에 올랐다.
같은 해 지평이 되고 1795년 관동암행어사로 나가 원주·영춘 등지의 창곡(倉穀)·전정(田政)·군정(軍政)의 부패상과 관리들의 비위사실을 낱낱이 폭로하였다. 1797년 수찬·교리를 거쳐, 집의 등을 역임한 뒤, 1799년 진하 겸사은사(進賀兼謝恩使)의 서장관(書狀官)으로 청나라에 다녀왔다.
1806년(순조 6) 신유사옥 때 관직을 추탈당한 채제공(蔡濟恭)의 신원(伸寃: 원통함을 풀어버림.)을 청한 승지 심규로(沈奎魯)에 동조, 윤필병(尹弼秉) 등과 함께 연합상소한 사건으로 하여 삭출되었다.
1808년 다시 기용되었으나 개성부유수로 있을 때 무뢰배들의 난동사건이 있어 그들을 다스리다가 10여 명이 곤장에 맞아죽는 불상사가 발생해 파직당하였다. 그 뒤 1812년 이후 비변사제조와 대사성·대사간·형조판서 등을 역임하였다.
1817년 동지사(冬至使)로 청나라에 다녀왔다. 이듬해 한성판윤이 되고, 1820년 형조판서가 되어 진향사(進香使)로 다시 청나라에 다녀왔다. 1821년 판돈녕부사·병조판서·빈궁당상(嬪宮堂上)·우참찬·판의금부사 겸 한성판윤을 지낸 뒤 1824년 함경도관찰사로 재직중 임지에서 세상을 떠났다.
시문(詩文)에 뛰어나 이유수(李儒修)·홍시제(洪時濟)·윤지눌(尹持訥)·정약전(丁若銓)·채홍원(蔡弘遠) 등과 죽란시사(竹欄詩社)라는 모임을 조직해 시로써 교유하였다. 저서로는 『병산집』이 있다.