1960 m. baigė Eržvilko vidurinę mokyklą. 1965 m. baigė Kauno politechnikos institutą (dabar Kauno technologijos universitetas), įgijo inžinieriaus elektriko specialybę. 1971–1974 m. buvo Filosofijos, teisės ir sociologijos skyriaus prie Istorijos instituto doktorantas, disertaciją apgynė 1981 m. Vilniaus universitete. 1960–1962 m. dirbo elektriku, 1964–1970 m. Žemės ūkio projektavimo institute ėjo techniko, inžinieriaus pareigas. 1966–1971 m. Kauno politechnikos instituto filosofijos katedros asistentas, vėliau docentas. 1974–1982 m. Lietuvos SSR rašytojų sąjungos Kauno skyriaus atsakingasis sekretorius, 1986–1988 m. valdybos sekretorius, 1988–1989 m. valdybos pirmininkas, 1989–1994 m. Lietuvos rašytojų sąjungos ir jos valdybos pirmininkas. 1994–2008 m. Vilniaus pedagoginio universiteto (dabar Lietuvos edukologijos universitetas) lietuvių literatūros katedros docentas, 1999–2008 m. šios katedros vedėjas, nuo 2011 m. lietuvių ir lyginamosios literatūros katedros profesorius. 1998–2012 m. Lietuvos edukologijos universiteto tęstinio mokslo leidinio ,,Teksto slėpiniai“ vyriausiasis redaktorius ir sudarytojas, nuo 2012 m. redaktorių kolegijos narys, literatūrologinės teksto analizės laboratorijos vadovas. Mokslo darbų žurnalo „Žmogus ir žodis“, kultūros žurnalo „Santara“, almanacho „Varpai“ redaktorių kolegijų narys. Lietuvos lyginamosios literatūros asociacijos, Europos lyginamųjų literatūros studijų tinklo (European Network of Comparative Literatures), Lietuvos mokslų akademijos tikrasis narys. Nuo 2018 m. – akademikas emeritas. Jo prozos kūrinių (romanų, apysakų, novelių, esė) išversta į keliolika užsienio kalbų.
Lietuvos rašytojų sąjungos narys – nuo 1971 m.