Első életéveit Sepsibikkszádon, majd Marosvásárhelyen töltötte. Innen Kolozsvárra költöztek. Itt a Farkas utcai Katolikus Elemi Iskolában kezdte meg tanulmányait, majd az Unitárius Kollégium Gimnáziumában folytatta 1940 és 1945 között. 1945–1946-ban a Debreceni Református Kollégium Gimnáziumában tanult.
1946. július 30-án házasságot kötött Debrecenben. Négy fiúgyermeke született.
1947 és 1950 között bányász a Dorogi Szénbányászati Tröszt Pilisszentiváni Bányaüzeménél. 1953–1956-ban betanított munkás, marós, fúrós a Kispesti Vörös Csillag Traktorgyárban. 1957-ben a Ganz Daru- és Hajógyár betanított munkása, esztergályos. 1958. szeptember 1-jétől az MTA Irodalomtudományi Intézetének munkatársa. 1968 óta írói munkásságából élt.
Tagja volt a Magyar Művészeti Akadémiának.
1954 elején egy pestlőrinci író–olvasó találkozón ismerkedett meg Szabó Pállal, aki az Irodalmi Újságban mutatta be a Sokan voltunk című elbeszélés közlésekor 1954 márciusában. A mű nagy feltűnést keltett. Első novelláskötete a Téli virágzás (1956). A Petőfi Kör alapító vezetőségi tagja. Nyílt levelet intézett a miniszterelnökhöz a parasztság jogfosztottságáról 1956 szeptemberében.
További művei: Farkasok a küszöbön (novellák, 1961); Az ötödik pecsét (regény, 1963); Húsz óra (krónika, 1963); Az áruló (regény, 1966); ennek drámaváltozata, az Éjszaka (1968, bemutatta a budapesti Katona József Színház 1968. március 8-án Egri István rendezésében, Őze Lajos, Avar István, Básti Lajos, Sztankay István, Maklári János szereplésével); Isten a szekéren (válogatott novellák, 1970); A szabadság küszöbén (esszék, cikkek, interjúk, 1993).
Több művéből készült film és tévéfilm. A Húsz óra (1965) és Az ötödik pecsét (1975) Fábry Zoltán rendezésében nemzetközi sikert is aratott. A Halálnak halála című tévéfilm forgatókönyvéért az író Arany Nimfa-díjat kapott Monte-Carlóban (1970). Filmre vitték az Éjszaka, A Müller család halála és a Kicsik és nagyok című munkáit is.
A Húsz óra és Az ötödik pecsét című regényei 23 nyelven jelentek meg (angol, cseh, hindi, holland, francia, japán, kínai, lengyel, német, olasz, orosz, román, szerb stb.).
2008. június 5-én hunyt el Budapesten.