본관은 여주(驪州)이며, 자는 주도(周道), 호는 기우자(騎牛子)·백암거사(白巖居士)·일가도인(一可道人)이다. 충주목사 이천백(李天白)의 아들이며, 어머니는 황씨(黃氏)이다.
1371년(공민왕 20) 과거에 급제, 한림수찬이 되었다. 1386년(우왕 12) 탐라(耽羅)가 자주 반란을 일으키므로 전의부정(典醫副正)으로 탐라에 가서 성주(星主: 제주목사의 별칭) 고신걸(高臣傑)의 아들 고봉례(高鳳禮)를 볼모로 데리고 왔다.
1389년(창왕 1) 좌간의대부(左諫議大夫)로 사전(私田)의 폐단을 논하는 상소를 올렸고, 이해에 지신사(知申事)가 되었다. 1390년(공양왕 2) 윤이(尹彛)·이초(李初)의 옥사가 일어나자 이에 연루되어, 이색(李穡)과 함께 청주옥에 갇혔으나 수재로 석방되었다.
그 뒤 경연참찬관(經筵參贊官)·예문관대제학을 지냈고, 1392년에는 이조판서로 정몽주(鄭夢周)를 살해한 조영규(趙英珪)를 탄핵하였다. 고려가 망하자 예천동(禮泉洞)에 은거하였다.
1393년(태조 2) 고려의 사관(史官)이었을 때 이성계(李成桂)를 무서(誣書: 글로써 무고함)한 죄가 있다 하여 사헌부의 탄핵을 받아 가산이 적몰되고, 울진에 귀양갔다가 이듬해에 풀려났다. 시호는 문절(文節)이다.