Aresztowany w czasie łapanki i wywieziony do obozu koncentracyjnego na Majdanku, a następnie do Sachsenhausen.
Początkowo występował w Teatrze Miniatur „Syrena” (1945) w Łodzi, następnie w teatrach warszawskich: Polskim (1946–1958), dokąd sprowadził go Arnold Szyfman, Komedii (1958–1960), ponownie Polskim (1960–1963 i 1966–1983) oraz Narodowym (1963–1966 i 1983–1990).
Największą sympatię widzów i uznanie krytyki zdobył interpretacjami roli fredrowskich Ludmira w „Panu Jowialskim”, Gucia w „Ślubach panieńskich”, Alfreda w „Mężu i żonie” i innych.
W 1955 zadebiutował na ekranie rolą tytułową w filmie Sprawa pilota Maresza w reż. Leonarda Buczkowskiego. Za rolę kapitana Grabińskiego w filmie Orzeł, tego samego reżysera razem z Bronisławem Pawlikiem i Aleksandrem Sewrukiem otrzymali zespołowo srebrny medal na pierwszym Festiwalu Filmowym w Moskwie. W Kanale Andrzeja Wajdy zagrał dowódcę powstańczego oddziału, porucznika Zadrę. Za główną rolę w filmie Echo Stanisława Różewicza w 1964 otrzymał pierwszą nagrodę za najlepszą rolę męską na Międzynarodowym Festiwalu Filmowym w Karlowych Warach (za najlepszą rolę żeńską równorzędną nagrodę otrzymała Jeanne Moreau).