문종 때 문과에 급제하여 문장으로 이름이 났다. 좌보궐지제고(左補闕知制誥)를 거쳐 선종 때 어사중승(御史中丞)이 되었다.
1085년(선종 2) 왕의 동생인 왕후(王煦: 大覺國師)가 송나라 상선을 타고 몰래 출국한 것을 왕명으로 추적하였으나 실패하였고, 또 왕의 총희 만춘(萬春)이 집을 화려하고 크게 짓는 것을 규탄하였다. 1091년(선종 7) 9월 예부시랑으로서 부사가 되어 사은 겸 진봉사(謝恩兼進奉使) 이자의(李資義)와 함께 송나라에 다녀왔다.
숙종 초에 예부와 이부의 상서가 되어서도 결백하고 지조있는 관료생활을 계속하여 칭송을 받았다. 한림학사승지(翰林學士承旨), 태자빈객(太子賓客)에 이어 판한림원사(判翰林院事)를 거쳐 1101년(숙종 6) 12월 중서시랑(中書侍郎) 동중서문하평장사주국(同中書門下平章事柱國)을 지냈으며, 1104년 12월 문하시랑평장사 겸 태자소사(門下侍郎平章事兼太子少師), 이듬해 6월 태자태부(太子太傅)가 되었다.
그 해 예종이 즉위하자 수태위(守太尉) 문하시중상주국(門下侍中上柱國)에 올라 여러 차례 퇴관할 것을 청하였으나 허락되지 않고 이듬해 12월 오히려 수태보(守太保)가 더하여졌다. 표(表)를 올려서까지 퇴관하기를 청하였으나, 왕은 중사(中使)를 보내 위로하고 차와 약을 내리고 녹(祿)의 반을 지급하였다고 한다.
예종의 묘정에 배향되었으며, 작품 「하천안절표(賀天安節表)」가 『동문선(東文選)』에 전한다. 시호는 충렬(忠烈)이다.