본관은 강릉(江陵). 자는 윤물(潤物), 호는 난계(蘭溪). 아버지는 검교중추원학사(檢校中樞院學士) 함승경(咸承慶)이다.
1385년(우왕 11) 문과에 급제해 예문검열(藝文檢閱)을 거쳐 좌정언으로 승진하였다. 1389년 공양왕이 즉위하자 헌납으로 재직중 정지(鄭地)·이림(李琳)·왕안덕(王安德)·우인열(禹仁烈)·우홍수(禹洪壽) 등 구신들을 탄핵하다가 왕의 미움을 받아 춘주지사(春州知事)로 좌천되었다.
그 뒤 다시 기용되어 형조정랑이 되었다. 그러나 중방(重房)의 무신들이 문신을 멸시하자 이에 항거하다가 파직되었다. 1392년(공양왕 4) 이성계(李成桂)가 실권을 잡자 병조정랑 겸 도평의사사경력사도사에 복직되었다. 그 해 이성계 추대에 참여해 개국공신 3등으로 개성소윤에 임명되었다.
그리고 형조의랑에 이어 대사성·좌산기상시로서 상서소윤(尙瑞少尹)을 겸하고 명성군(溟城君)에 봉해졌다. 태종 초기에 충청도관찰출척사·예문관제학·동북면도순문사·동북면도순문찰리사 겸 병마도절제사 겸 영흥부윤 등을 역임하였다. 1404년(태종 4) 참지의정부사로서 대사헌에 올랐다.
다음 해 노비변정도감제조와 경기도관찰사를 역임하고, 1406년에 계림부윤·경상도관찰출척사를 지냈다. 다음 해 다시 참지의정부사로서 명나라에 다녀왔다. 1408년에 형조판서가 되었다가 1410년 파직되었다.
성격이 강직해 직언을 서슴지 않았으며, 서리를 다스리는 데에 능숙해 관직을 맡을 때마다 칭송을 받았다. 1405년에는 앞서 1398년(태조 7)의 제1차 왕자의 난 때, 정도전(鄭道傳)과 더불어 왕자 방석(芳碩)을 옹립했다는 혐의로 탄핵을 받은 일이 있다. 시호는 정평(定平)이다.