본관은 수주(樹州)이다. 과거에 급제한 뒤 1059년(문종 13) 4월 지남원부사 시예부원외랑(知南原府使試禮部員外郎)으로 있으면서 『삼례도(三禮圖)』 54판(板)과 『손경자서(孫卿子書)』 92판을 새로이 새겨서 바치니 국왕이 비각(祕閣)에 두도록 하고 의복을 상으로 하사하였으며, 1060년 3월 시어사(侍御史)가 되었다.
1070년 정월 한림학사에 임명되었고, 1073년에는 위위경(衛尉卿)으로 왕명을 받아 상서성에 나가 왕자 상안공(常安公) 왕수(王琇)를 개부의동삼사 검교상서령 수사공 상주국 평양후(開府儀同三司檢校尙書令守司空上柱國平壤侯)로 책봉하는 일을 수행하였다.
1075년 7월 예부상서 태자빈객이 되고, 이듬해 3월 예부상서로서 예부시의 지공거(知貢擧)를 맡았으며, 9월 병부상서, 1081년 11월 참지정사 수국사(參知政事修國史)를 거쳐 1082년에는 좌복야에 제수되었다. 같은 해 8월 왕이 문덕전(文德殿)에 거둥하여 사형에 관한 송사를 처리할 때 문하시랑 문정(文正)과 함께 참석하였다.
1083년 정월 중서시랑 동중서문하평장사(中書侍郎同中書門下平章事)가 되었고, 같은 해 선종이 즉위하자 12월에 김양감(金良鑑) 등과 함께 시정의 득실을 진술하였다. 1086년(선종 3) 4월 문하시중 판상서이부사(門下侍中判尙書吏部事)에 올랐다가 얼마 뒤에 치사하였다.
1097년(숙종 2) 국청사(國淸寺)가 낙성된 뒤 왕이 친히 경찬도량(慶讚道場)을 열었는데 이 때 양부재신(兩部宰臣)과 함께 잔치에 초대되었다. 같은 해 6월 왕명을 받아 흥왕사(興王寺)의 비문을 지어 올리니 그 공으로 필단(匹段)·은기(銀器)·다포(茶布)·안마(鞍馬) 따위의 많은 물품이 하사되었다.
1099년(숙종 4) 5월 세상을 떠났으며, 1107년(예종 2) 8월 순종의 묘정(廟庭)에 배향되었고, 시호는 문충(文忠)이다.