판사(判事)로 재직 중 1365년(공민왕 14) 6월 신돈(辛旽)이 사부(師傅)가 되어 국정을 장악하고 최영(崔瑩) 등 구세력을 축출할 때, 순흥(順興)에 귀양갔다.
1370년 요성(遼城)을 공략할 때 원수 지용수(池龍壽)의 비장(裨將)으로서 최공철(崔公哲) 등과 함께 기병 3,000명으로 출정하였다. 1376년(우왕 2) 10월 양광도도순문사(楊廣道都巡問使)가 되어 진포(鎭浦)의 왜구를 격퇴하고, 다음해 2월에도 신평현(新平縣)에 쳐들어온 왜적들을 물리쳤다.
1380년 2월 강계원수가 되었으며, 8월에는 500척의 왜선이 진포에 정박하여 하삼도(下三道)를 침략하므로, 상의(商議)로서 원수가 되어 양광전라경상삼도도순찰사 이성계(李成桂)의 지휘를 받아 운봉현(雲峯縣) 황산에서 적을 궤멸시켰다.
1388년 5월 요동정벌 때에는 이성원수(泥城元帥)로서 참가하여 강계원수 이의(李薿)와 먼저 요동경계에 쳐들어갔다가 회군하였다. 1390년(공양왕 2) 5월 명나라에서 돌아온 조반(趙胖)에 의하여 보고된 윤이(尹彛)·이초(李初)의 고변에 연루되어 순군옥(巡軍獄)에 갇혀 옥사하였다.