Od 1955 był aktorem Teatru Dramatycznego w Warszawie, gdzie występował w spektaklach Konrada Swinarskiego, Lidii Zamkow, Bohdana Korzeniewskiego i Ludwika René.
W latach 1976–1981 był dyrektorem naczelnym i artystycznym Teatru Powszechnego w Łodzi, a także wykładowcą Wydziału Aktorskiego Państwowej Wyższej Szkoły Filmowej Telewizyjnej i Teatralnej im. Leona Schillera w Łodzi. Jego najbardziej znaną rolą na deskach Teatru Powszechnego była tytułowa rola w Szwejku wg Jaroslava Haška, w reżyserii Janusza Zaorskiego (1976).
Na ekranie zadebiutował również w 1953. Filmy Cień (1956) w reżyserii Jerzego Kawalerowicza oraz Pierwszy dzień wolności (1964) w reżyserii Aleksandra Forda, w których wystąpił w rolach pierwszoplanowych, znalazły się w konkursach głównych 9. i 18. Międzynarodowego Festiwalu Filmowego w Cannes. Od 1981 pracował w Teatrze Syrena w Warszawie. Jego pożegnaniem z widzami była rola Krappa w Ostatniej taśmie Samuela Becketta na deskach Teatru im. Juliusza Osterwy w Gorzowie Wielkopolskim (2013). Zakończył karierę ze względu na prawie całkowitą utratę wzrokuTygodnik „To & Owo” nr 6, 7.02.2017, s. 12..