본관은 개성(開城). 1085년(선종 2) 과거에 장원으로 급제하여 진주사록(晉州司錄)이 되었는데, 청백리로 선정되어 1101년(숙종 6) 좌습유지제고(左拾遺知制誥)에 승진되었다.
형부낭중(刑部郎中)을 거쳐 1107년(예종 2) 윤관(尹瓘)의 여진정벌 때, 좌군판관(左軍判官)으로 종군, 싸움에 패한 부하를 죽이려 하는 윤관을 설득하여 중지시켰다.
1109년 상서우승 추밀원우승선(尙書右丞樞密院右承宣), 1112년 예빈경 추밀원지주사(禮賓卿樞密院知奏事), 1113년 추밀원부사(樞密院副使)·좌산기상시 동지추밀원사(左散騎常侍同知樞密院事), 1114년 예부상서 지추밀원사(禮部尙書知樞密院事), 1116년 병부상서 추밀원사 겸 태자빈객(兵部尙書樞密院使兼太子賓客)에 오르고, 지공거를 역임하였다.
1117년 검교사공 참지정사(檢校司空參知攻事)·판형부사(判刑部事)·상서우복야 겸 태자소부(尙書右僕射兼太子少傅)가 되었다.
1119년 수사공(守司空), 1120년 중서시랑평장사(中書侍郎平章事), 1122년 수사도 판예부사(守司徒判禮部事)가 되었으며, 그해 인종이 즉위하자 문하시랑평장사(門下侍郎平章事)에 이르렀다. 시호는 정신(貞愼)이다.