본관은 남양(南陽). 자는 백윤(伯潤), 호는 죽암(竹巖). 홍여겸(洪汝謙)의 증손으로, 할아버지는 홍식(洪湜)이고, 아버지는 홍우직(洪友直)이며, 어머니는 조존세(趙存世)의 딸이다.
1629년(인조 7) 별시문과에 을과로 급제, 설서로 재직중 1636년 병자호란이 일어나자 척화를 주장하다 김상헌(金尙憲)·오달제(吳達濟) 등과 함께 적진에 끌려갔다.
1638년 활쏘기·말타기 등 무재(武才)가 뛰어나다 하여 광주부윤(廣州府尹)에 특별히 기용되었으며, 1642년 강계부사를 거쳐 의주부윤이 되었다.
1645년 경상도방어사로 떠날 때 인조는 전마(戰馬) 1필과 갑주 1부를 하사, 격려하였다. 이듬해 우부승지에 이어 우승지가 되고, 1647년 황해도관찰사가 되었다. 전에 의주부윤으로 있을 때 청나라 관리에게 아첨하기 위해 비용을 지나치게 사용하였다 하여 파직당하였다.
청주목사로 다시 기용되어 1651년(효종 2) 제주목사, 1653년 길주목사가 되었다. 1661년(현종 2) 진하 겸 사은부사(進賀兼謝恩副使)로 청나라에 다녀와 이듬해 한성좌윤이 되었다. 1664년 충주목사가 되고 이어서 한성우윤을 역임하였다.