본관은 함종(咸從). 자는 경우(景雨). 수운판관(水運判官) 어한명(魚漢明)의 증손으로, 할아버지는 정랑 어진척(魚震陟)이고, 아버지는 증승정원주서 어사상(魚史商)이다. 어머니는 원순빈(元舜賓)의 딸이다. 경종의 장인인 어유구(魚有龜)의 재종제이다.
1710년(숙종 36) 사마시에 합격하고, 1713년 증광문과에 병과로 급제하였다. 1717년 이후 정언(正言)·수찬(修撰)·지평(持平)을 역임하였고, 경종 즉위 후에도 지평(持平)·헌납(獻納)·장령(掌令)·사간 등 양사의 벼슬을 역임하였다.
대간으로 있으면서 왕세제 책봉을 반대하는 소론파의 처벌을 주장하였고, 또한 세제대리청정을 반대하는 조태구(趙泰耉) 등을 탄핵하여 박치원(朴致遠)·이중협(李重協)과 함께 노론파의 3대 대간으로 불렸다. 이 때문에 1722년(경종 2) 임인옥사 때에 의금부에 잡혀 국문을 받고, 영암에 유배되었다. 1725년(영조 1) 사간·집의(執義) 등을 거쳐 광주부윤·황해감사를 지냈으나, 1727년 정미환국으로 파직되었다.
1730년 복직되어 승지·강원감사·안동부사 등을 거쳐 대사간에 이르렀고, 1744년 사은부사로 청나라에 다녀왔다. 1748년 한성부좌윤을 거쳐 1754년 지중추부사로 기로소(耆老所)에 들어가고, 이 해에 한성부판윤이 되었으나 치안을 유지하지 못한 책임으로 면직되었다. 그 뒤 판돈녕부사에 올랐다. 시호는 정헌(靖憲)이다.