본관은 장연(長淵). 문종 초 과거에 급제하여 병부시랑·좌간의대부를 역임하고 형부상서·참지정사를 거쳐 중서시랑평장사로 승진하였다. 1080년(문종 34) 판행영병마사(判行營兵馬使)가 되어 동여진을 정벌하였다.
이때 병마사 최석(崔奭)·염한(廉漢), 병마부사 이의(李顗)와 더불어 보군(步軍)과 기병 3만을 거느리고 나가서 정주(定州)에 진을 친 뒤 밤에 적의 소굴을 공격하여 큰 공을 세웠다.
이 공으로 추충찬화탕구정새공신(推忠贊化蕩寇靜塞功臣)이 되었고, 특진검교사도 문하시랑평장사 판상서예형부사 태자태부 상주국 장연현개국백(特進檢校司徒門下侍郎平章事判尙書禮刑部事太子太傅上柱國長淵縣開國伯)이 되었다.
1081년 4월 농사철에 백성이 농업에 힘쓸 수 있도록 흥왕사의 토목공사와 12개소의 감창순찰사(監倉巡察使)를 파(罷)할 것을 왕에게 청하여 이를 시행하도록 하였다. 또한, 진사 노준(魯隼)은 그 아버지가 대공친(大功親)과 혼인하여 낳은 자로서 그의 등용에 말썽이 생기자 노준을 계자(階資)를 낮추어 등용하도록 청하였다
만년에 사학(私學)을 일으켜서 12도(十二徒)의 하나인 정헌공도(貞獻公徒)를 세웠다. 문종 이후 3조(三朝)에 출사하였으며, 1093년(선종 10) 수태위문하시중(守太尉門下侍中)으로 치사(致仕)하였다. 선종 묘정에 배향되었으며, 시호는 정헌(貞獻)이다.