진주(鎭州: 지금의 충청북도 진천) 사람. 과거에 급제하여 직사관(直史館)이 되었다. 1226년(고종 13) 금나라 장수 우가하(于哥下)가 침입하자 감찰어사(監察御史)로 우군장(右軍將)이 되어, 김희제(金希磾)·손습경(孫襲卿)과 함께 보기(步騎) 1만여 명을 거느리고 출전하여 우가하를 물리치고 개선하였다.
정언(正言)을 거쳐 판비서성사(判秘書省事)가 된 뒤 정방(政房)에 들어갔으나 아부함이 없이 원칙을 지키려 했으므로 최이(崔怡)가 좋아하지 않았다. 뒤에 박훤(朴萱)이 권세를 크게 부리자 정방을 떠났다. 1231년 몽고가 침입하자 회안공(淮安公) 왕정(王侹)을 따라 사르타이[撒禮塔]와 강화를 체결하는 데 공을 세웠다.
형부상서(刑部尙書)로 경상도순문사(慶尙道巡問使)로 나갔을 때 송광사(松廣寺)의 중으로 국가와 백성에게 큰 피해를 주던 최만전(崔萬全: 崔瑀의 서자로 이름은 崔沆)을 탄핵하여 그들을 불러들이게 하였다. 그러나 곧 최항(崔沆)의 참소로 동경부유수(東京副留守)로 좌천되었고, 1249년 최항이 집권하자 우산기상시(右散騎常侍)를 거쳐 지서북면병마사(知西北面兵馬事)로 좌천된 뒤 다시 개경으로 돌아오지 못하고 분사(焚死)하였다. 문장에 능하고 책임감이 강한 유능한 관리였다 한다.