본관은 강릉(江陵)이다. 현종 때 과거에 급제하고 여러 벼슬을 거쳐 기거사인(起居舍人)에 올랐다. 정종(靖宗) 때 우승선 급사중(右承宣給事中)으로 도병마부사(都兵馬副使) 박성걸(朴成傑)과 함께 동로(東路) 정변진(靜邊鎭)의 축성을 주장하여 실현시켰고, 지주사 예빈경(知奏事禮賓卿)에 전임되었다.
1040년(정종 6) 9월 중추원지주사(中樞院知奏事)가 되고, 1044년(선종 10)에는 동북로병마사 참지정사(參知政事) 김영기(金令器)와 함께 장주(長州)·정주(定州) 및 원흥진(元興鎭)에 성을 쌓았다. 1047년(문종 1) 7월 중추사로 서북면중군사 겸 행영병마사(西北面中軍使兼行營兵馬使)가 되었으며, 1049년(문종 3) 2월 수사공 상주국(守司空上柱國)이 되었다.
이듬해 4월 도병마사로서 동반과 남반의 관리 및 마군(馬軍)의 정기적 교습을 건의하였다. 이어 내사시랑을 거쳐 1053년(문종 7) 7월 문하시랑 평장사(門下侍郎平章事)가 되어, 병마사의 사직을 청하였으나 허락되지 않았다. 1061년(문종 15) 12월에 문하시중 판상서이부사가 되었고, 이후 중서령(中書令)으로 치사(致仕)하였으며, 1067년(문종 21) 3월 세상을 떠났다.
1080년(문종 34) 2월에는 수태사 중서령(守太師中書令)에 추증되었으며, 1086년(선종 3) 2월 문종의 묘정에 배향되었다. 시호는 경숙(景肅)이다.