고려 공민왕 때 과거에 급제하고, 춘추관에 들어가 사관(史官)으로 복무하였다. 1383년(우왕 9) 좌사의대부(左司議大夫)에 올랐으며 한학과 문장에 능해 성절사(聖節使)로 명나라에 다녀왔다.
1388년 상서원소윤(尙瑞院少尹)을 역임하고 위화도회군에 참여해 밀직사에 오르고, 이듬해 밀직제학에 제수되었고, 하정사(賀正使)로서 다시 명나라에 다녀왔다. 이어 강릉교주도도관찰사를 역임하고 1392년 공양왕의 세자 이석(李奭)의 사부가 되었다.
1392년 조선 건국에 참여해 개국공신 3등에 책록되었다. 그리고 중추원부사·지중추원사를 역임하면서 척불론(斥佛論)을 내세워 유교의 이념 정착에 힘썼다. 1393년(태조 2) 조선에 온 명나라 사신 황영기(黃永奇)를 따라 명나라에 갔다가 돌아왔다.
1396년 상의중추원사(商議中樞院事)로서 충청·전라·경상도 도찰리사(都察理使)가 되어 민정을 시찰했고, 1398년 경상도도관찰사가 되어 영농과 양병, 특히 빈민 구제에 힘썼다.
그 뒤 충청도도관찰사, 예문관·춘추관 대학사를 거쳐 1401년(태종 1) 사헌부대사헌에 발탁, 시무책을 올렸다. 내용은 첫째 가묘법(家廟法)을 엄격히 하고, 둘째 행정을 공평히 하며, 셋째 감찰기능을 강화하고, 넷째 서북면에 대한 진휼책 실시를 주장하였다.
이어서 예문관대제학·서북면도순무사를 역임하고, 1405년 호조판서가 되어 경제 시책으로서 공신전을 감축해 재정을 확보하고, 광흥창의 양곡을 풍저창·군자감으로의 전용을 금지시켜 녹봉제의 토대를 정비하였다.
1407년 형조판서가 되어서는 공신들의 횡포를 제거하고자 했으며, 그 뒤 예조판서·판한성부사를 지냈다. 직무에 충실했으며 성품이 강직했다 한다. 시호는 문간(文簡)이다.