본관은 남양(南陽). 자는 숙범(叔範), 호는 수졸재(守拙齋). 할아버지는 관찰사 홍명구(洪命耉)이고, 아버지는 우의정 홍중보(洪重普)이며, 어머니는 이조판서 이현영(李顯英)의 딸이다. 송준길(宋浚吉)과 송시열(宋時烈)의 문인이다.
1662년(현종 3) 사마시에 합격한 뒤 성균관에 입학하였으며, 1670년 음보로 정릉참봉(靖陵參奉)에 임명되었으나 사임하고 나아가지 않았다. 1674년 전설사별좌에 기용된 뒤 군자감주부·공조좌랑을 거쳐, 통진현감에 제수되었다가 병으로 사임하였다.
1676년(숙종 2) 스승 송준길이 오례문제(誤禮問題)로 관작을 추탈당하자, 그 부당함을 상소하였다가 무안에 유배되었으나 그 해 겨울에 사면되었다. 그 뒤 장악원과 사복시의 주부, 호조좌랑 등을 거쳐 1683년 담양부사로 부임하여 심한 흉년으로 기근에 시달리는 백성을 잘 구휼하여 그 공로로 첨지중추부사에 올랐다.
순흥·밀양·삼척·안동 등의 부사를 역임한 뒤 1700년에 강원도관찰사에 임명되었으나 부임하기 전에 죽었다. 스승의 무고를 벗기려 일생동안 힘썼고, 수령의 직임을 맡아서는 가는 곳마다 선정을 베풀었다.