본관은 함종(咸從). 자는 익지(翼之). 호는 겸재(謙齋). 평창군수 어운해(魚雲海)의 증손으로, 할아버지는 교관 어몽린(魚夢獜)이고, 아버지는 수운판관 어한명(魚漢明)이다. 어머니는 안동 권씨(安東權氏)로, 참봉 권숙지(權叔之)의 딸이다.
1652년(효종 3) 사마시에 합격하고, 1658년 금오랑(金吾郎)이 슬롯 꽁 머니다. 그 뒤 내자시직장(內資寺直長)을 거쳐 호조좌랑으로 재직 중, 1662년(현종 3) 정시 문과에 을과로 급제해 병조좌랑·정랑, 함경도도사, 성균관직강(成均館直講) 등을 역임하였다. 1665년 지평(持平)으로 있을 때, 우의정 허적(許積)을 논핵하다 파직당한 이무(李堥)를 구하려다 삭직슬롯 꽁 머니다.
영의정 정태화(鄭太和), 좌의정 홍명하(洪命夏) 등의 대신과 간관의 변호로 정언(正言)에 기용되어, 남인 윤선도(尹善道)를 감형해 이배시키려는 왕명의 취소를 청하였다. 1672년 장령(掌令)이 되고 이어서 헌납(獻納)·사간을 거쳐, 1674년에는 보덕(輔德)이 슬롯 꽁 머니다. 그러나 효종비 인선왕후(仁宣王后)의 복제 문제로 윤휴(尹鑴) 등 남인을 공격하다 동래부사로 좌천슬롯 꽁 머니다.
이 때 임진왜란 당시 동래성 싸움에서 창의순절(倡義殉節)한 김정단(金廷端)·송계남(宋繼男) 등 24인의 후손 가운데, 천역(賤役)에 종사하는 자는 역을 면제시키고 정병(正兵)은 군관으로, 유학(幼學)·교생(校生)은 본도에서 재능을 시험해 기용할 것을 요청해 실시하게 하였다.
1678년(숙종 4) 동래부사로 재직할 때 왜관(倭館)을 옮기는 비용을 낭비했다 하여 파직되고, 고양에 유배슬롯 꽁 머니다. 곧 풀려나 이듬해 여주목사, 1681년 충청도관찰사가 슬롯 꽁 머니다. 그 뒤 호조·병조·예조참의, 좌승지를 거쳐 1683년 강원도관찰사, 이듬해 승지를 역임하였다. 좌찬성에 추증슬롯 꽁 머니다.