본관은 양천(陽川). 자는 윤옥(允玉), 호는 계주(桂洲). 좌의정 허침(許琛)의 후손이며, 허욱(許昱)의 증손으로, 할아버지는 허신(許紳)이고, 아버지는 동지중추부사 허설(許卨)이며, 어머니는 현감 유의함(柳宜涵)의 딸이다.
1672(현종 13) 생원과 진사 양시에 합격했으며, 1683년(숙종 9) 증광문과에 장원으로 급제하였다. 성균관전적을 거쳐, 병조좌랑·전라도사 등을 지낸 뒤 지평이 되었다. 1687년 노론과 소론의 당쟁에서 노론의 영수 송시열(宋時烈)을 숭앙한다고 소론의 미움을 사서 남인의 거두였던 윤휴(尹鑴)의 당(黨)이라고 지목받아 한때 관직에서 물러났다.
그 뒤 정승으로 있던 이단하(李端夏)가 그를 변호해 이천부사(伊川府使)가 되었다. 그러나 1689년 기사환국으로 남인이 정권을 잡게 되자 탄핵을 받아 파직당하였다. 1694년 갑술옥사로 남인이 몰락한 뒤 다시 등용되어 통례(通禮)·예빈시정·풍기군수 등을 역임했다.
1697년 문과중시에 병과로 급제해 통정대부(通政大夫)로 승진하고, 안주목사로 부임하였다. 이어 동부승지·병조참의·경주부윤·한성우윤 등을 역임하였다. 그 뒤 기로소(耆老所)에 들어갔으며, 1719년 병조참판이 되었다.
경종 즉위 후 소론이 신임사화를 일으켜 노론을 축출할 때 관직을 박탈당하였다. 그러나 영조가 즉위한 뒤 노론이 다시 득세하게 되자, 1725년(영조 1) 예조판서에 임명되었다. 이 때 준소(峻少) 계열인 박필몽(朴弼夢)을 신임사화의 문제로 탄핵해 유배시키기도 하였다.
대질(大耋: 80세 노인)로서 특별히 은전(恩典)을 받아 자헌대부(資憲大夫)로 승진하고 지중추부사가 되었다. 청백리로서 이름이 높았다. 시호는 양경(良景)이다.