본관은 상산(商山). 일명 김우생(金祐生). 자는 문숙(文叔), 호는 양산(陽山). 할아버지는 판장군(判將軍) 김언(金彦)이고, 아버지는 영중추부사(領中樞府事) 김운보(金云寶)이다. 정몽주(鄭夢周)에게 수학하였고, 사서구경(四書九經)에 통달하였다.
1388년(우왕 14) 당시 17세의 나이로 문하시중(門下侍中) 최영(崔瑩)이 요동정벌을 강행하려 하자, 이성계(李成桂)에게 글을 보내어 그 불가함을 역설하였다. 1392년(태조 1) 순천부사(順天府使)가 되었다. 1400년(정종 2) 정안군(靖安君: 李芳遠)의 요속으로서 박포(朴苞)의 난에 공훈을 세웠다. 추충분의익대좌명공신(推忠奮義翊戴佐命功臣)에 책봉된 형 김덕생(金德生)이 동료들의 투기로 억울하게 처형되자 사직하였다.
성삼문(成三問)·박팽년(朴彭年) 등과 교유하였다. 1454년(단종 2)에 승지에 제수되었으나 사퇴하였고, 1456년(세조 2)에 사육신사건에 연루되었으나 정인지(鄭麟趾)의 도움으로 화를 면하였다. 1457년 단종이 죽었다는 소식을 듣고 자결하였다. 저서로는 『가례연의(家禮衍義 )』 2권과 『훈몽요어(訓蒙要語)』 2권이 있다.