본관은 청주(淸州). 자는 공보(公甫). 한수(韓脩)의 증손으로, 할아버지는 개국공신 한상경(韓尙敬)이고, 아버지는 함길도관찰출척사 한혜(韓惠)이며, 어머니는 성달생(成達生)의 딸이다. 그의 처는 세조의 비 정희왕후(貞熹王后)의 언니로, 윤번(尹璠)의 딸이다.
1438년(세종 20) 18세의 나이에 음보로 충의위사용(忠義衛司勇)이 되고, 부사직으로 감찰을 역임하였다. 나주판관을 거쳐 1452년(문종 2) 형조도관좌랑(刑曹都官佐郎)에 제수되었다. 다음 해 수양대군(首陽大君)이 사은사(謝恩使)로 명나라에 갈 때 그를 보좌한 공로를 인정받아 군자판관이 되었다.
1455년 사복시소윤(司僕寺少尹)에 제수되었다. 그리고 세조가 즉위하자 추충좌익공신(推忠佐翼功臣) 3등에 책록되고 통훈대부(通訓大夫)가 되었다. 1456년(세조 2) 절충장군행호분시위사대호군지사간원사(折衝將軍行虎賁侍衛司大護軍知司諫院事)로 옮겨진 뒤 그 해 6월 동부승지로, 7월에 우부승지로, 10월에 좌부승지로 승진하였다.
1457년 우승지로 재직중 세자의 질병을 열심히 간호해 왕의 칭찬을 받았다. 1458년 9월 가선대부(嘉善大夫)로서 호조참판이 되고, 서원군(西原君)에 봉해졌다. 1461년 하삼도(下三道)의 부호(富戶)를 추쇄(推刷: 부역 또는 병역 기피자를 찾아냄.)해 평안도·황해도·강원도 등에 이주시켰다.
또한 안집도순찰사(安集都巡察使)가 되어 제방을 쌓고 진전(陳田)을 개간하는 등 북방 개척에 큰 공적을 세웠다. 1463년 자헌대부(資憲大夫)로서 이조판서가 되었다. 이 때 세조는 군액 부족을 우려해 3도의 군적(軍籍)을 정비하도록 하였다.
호구(戶口)의 증감을 정확하게 조사해 왕의 뜻에 부합하였다. 1465년 정헌대부(正憲大夫)로서 겸사복장(兼司僕將)이 되었다가 오위도총부도총관으로 옮겼다. 1467년 숭정대부(崇政大夫)로서 평안도병마수군절도사 겸 영변대도호부사로 부임하였다.
그 해 이시애(李施愛)의 난이 일어나자 평안도의 정병(精兵)을 이끌고 가 평정하는 데 공을 세워 적개공신(敵愾功臣) 3등에 책록되었다. 또한 숭록대부 우찬성 겸 오위도총부도총관이 되었다. 1469년(예종 1) 좌찬성으로 옮기고 이조판서를 겸하였다.
1470년 보국숭록대부에 승품되고 서원부원군(西原府院君)에 봉해졌다. 1471년 순성명량경제좌리공신(純誠明亮經濟佐理功臣) 2등에 책록되고, 이어 영중추부사가 되었다. 시호는 문양(文襄)이다.