1363년(공민왕 12)에 안우(安祐) 등과 함께 홍건적을 평정한 공으로 2등공신이 되었으며, 이어 밀직부사가 되었다. 1374년(우왕 즉위년)에 공민왕이 죽자 이인임(李仁任) 등을 도와 우왕의 옹립을 주장하여 등극하게 하였다.
이어 판사사(判司事)를 거쳐 문하평리(門下評理)에 전임되었다. 1377년 양광도도원수(楊廣道都元帥)가 되어 왜구와 싸웠으나 패전하였고, 1383년에 양광도조전원수(楊廣道助戰元帥), 1385년에 다시 양광도도원수가 되어 왜구를 토벌하였다.
이 공으로 찬성사에 오르고, 1388년 요동정벌을 할 때에 좌군도통사(左軍都統使) 조민수(曺敏修)의 휘하에서 양광도도원수로 참전하였다.
이해 우왕이 폐위되고 창왕이 즉위하자 육도도통찰사(六道都統察使)가 되었으며, 이듬해 도체찰사(都體察使)가 되어 양광도 도둔곶(都屯串)에서 광주절제사(廣州節制使) 최운해(崔雲海), 양광도도절제사(楊廣道都節制使) 이승원(李承源)과 더불어 왜구토멸에 나섰으나 대패하고 돌아왔다.
1389년(공양왕 1)에 판삼사사(判三司事)가 되고, 이듬해 김저(金佇)·변안열(邊安烈)의 옥사(獄事)에 연루되어 극형에 처하라는 상소를 대간(臺諫)에서 올렸으나 왕의 허락을 얻지 못하였다.
1390년 3월 강원군(江原君)에 봉해졌으나 대간의 계속된 탄핵으로 결국 풍주(豐州)에 유배되고, 다음 달에 풀려나왔다. 낭사(郎舍) 허응(許應) 등이 거듭 탄핵할 것을 주장하였으나, 위화도회군 때의 공과 죄가 뚜렷하지 않다는 이유로 유배를 면하고 개경 밖으로 추방되었다. 이어 개경 외의 고장에서는 어디서나 원하는 곳에 거주할 수 있는 특전이 내려졌다.
시호는 정양(貞襄)이다.