문종 때 문과에 급제한 뒤, 1097년(숙종 2) 우찬선대부(右贊善大夫), 1099년 이부낭중추밀원우승선(吏部郎中樞密院右承宣)을 역임하였다.
그 뒤 1101년 어사중승(御史中丞)으로 동북면병마사(東北面兵馬使)가 되고 이어 형부시랑우간의대부(刑部侍郎右諫議大夫)에 올랐으며, 논의함이 강직하여 굽힘이 없었다.
1105년예종이 즉위하여 비서감직문하성(秘書監直門下省)이 되고, 이듬해 경상도에 홍수가 나자 좌산기상시(左散騎常侍)로서 안무사(按撫使)로 파견되어 공전세(公田稅)를 감면시켜주는 등 백성의 구제에 힘썼다.
1108년(예종 3) 상서로서 서북면병마사가 되고 이듬해 동지추밀원사를 거쳐 이부상서지추밀원사(吏部尙書知樞密院事)에 올랐다. 1113년 검교사공참지정사(檢校司空參知政事)가 되었다.
이 때 대신들이 새로운 법을 만들어 예종에게 올렸으나, 이미 성헌(成憲)이 갖추어져 있으니 고치지 말고 제대로 지켜 잃지 않음이 옳다고 하여 반대하였다. 이듬해 참지정사로 치사하였다. 청검하여 죽은 뒤 집에 남은 재물이 없었다고 한다. 시호는 양경(良敬)이다.