1363년(공민왕 12) 냉산(冷山) 도리사(桃李寺)에서 처음 글을 배웠고, 1370년 상산사록(商山司錄) 박분(朴賁)에게서 『논어』와 『맹자』 등을 배우며 비로소 성리학을 접하였다. 아버지를 뵈려고 개경에 이르러 이색(李穡)·정몽주(鄭夢周)·권근(權近) 등 여러 선생의 문하에서 지내며 비로소 학문의 지극한 이론을 듣게 되었다.
1374년 국자감에 들어가 생원시에 합격하고, 1383년(우왕 9) 사마감시(司馬監試)에 합격하였다. 1386년 진사시에 제6위로 급제하여 그 해 가을 청주목사록(淸州牧司錄)에 임명되었으나 부임하지 않았다. 이때 이방원(李芳遠)과 한 마을에 살면서 서로 오가며 함께 학문을 강론하고 연마하였다.
1387년 성균학정(成均學正)이 되고, 이듬 해 순유박사(諄諭博士)를 거쳐 성균박사(成均博士)로 승진되었다. 당시 공직에 있을 때에는 태학(太學)의 생도들이, 집에서는 양반자제들이 모두 그에게 모여들어 배우기를 청하였다. 1389년(창왕 1) 문하주서(門下注書)가 되었으나, 나라가 장차 망할 것을 알고서 이듬 해 봄 늙은 어머니를 모셔야 한다는 핑계로 벼슬을 버리고 고향인 선산으로 돌아왔다.
1391년(공양왕 3) 계림부(鷄林府)와 안변(安邊) 등의 교수(敎授)로 임명되었으나 모두 부임하지 않았으며, 우왕의 부고를 듣고 채과(菜果)와 혜장(醯醬) 따위를 먹지 않고 3년상을 행하였다. 1400년(정종 2) 가을 세자 방원이 그를 불러 봉상박사(奉常博士)에 임명했으나 글을 올려 두 왕을 섬기지 않는다는 뜻을 펴니, 그 절의를 갸륵하게 여겨 예를 다해 대접해 보내주고 세금과 부역을 면제해 주었다.
1403년(태종 3) 군사 이양(李楊)이 그가 사는 곳이 외지고 농토가 척박해 살기에 마땅하지 못하다 하여 오동동의 전원(田園)으로 옮겨 풍부한 생활을 누리도록 하였다. 그러나 그는 소용에 필요한 만큼만 남겨두고 나머지는 모두 돌려보냈다.
그를 흠모하는 학자들이 사방에서 모여들어 항상 그들과 경전을 토론하고 성리학을 강해(講解)하였으며, 오직 도학(道學)을 밝히고 이단(異端)을 물리치는 것으로 일을 삼으며 후학의 교육에만 힘썼다. 그의 문하에서는 김숙자(金叔滋) 등 많은 학자가 배출되어, 김종직(金宗直)·김굉필(金宏弼)·정여창(鄭汝昌)·조광조(趙光祖)로 그 학통이 이어졌다.
저서로는 『야은집(冶隱集)』과 『야은속집(冶隱續集)』이 있으며, 그 밖에 그의 언행록인 『야은언행습유록(冶隱言行拾遺錄)』이 전해지고 있다.