Po studiach od 1968 do 1974 pracował w Państwowym Szpitalu Klinicznym Nr 1 w Zabrzu. Następnie do 1988 był zatrudniony w Centralnym Szpitalu Klinicznym w Katowicach. Powrócił do tej placówki w 1991 po kilkuletnim stażu naukowym w USA, kierował w niej Katedrą i Kliniką Neurologii Wieku Podeszłego. Zasiadł w Naczelnej Radzie Lekarskiej i władzach Polskiego Towarzystwa Neurologicznego. W pracy naukowej zajął się wczesną diagnostyką otępienia, chorobami naczyniowymi ośrodkowego układu nerwowego, a także chorobą Parkinsona.

Od 1980 działał w „Solidarności”, był m.in. delegatem na I Krajowy Zjazd Delegatów związku w Gdańsku. W okresie stanu wojennego organizował pomoc m.in. dla strajkujących górników z KWK Wujek i ich rodzin. Działał w duszpasterstwie akademickim w Katowicach.

Należał do współtwórców Ruchu Społecznego AWS, był członkiem rady politycznej oraz przewodniczącym katowickiego zarządu regionalnego tej partii. 7 listopada 2000 zastąpił zmarłą Franciszkę Cegielską na stanowisku ministra zdrowia w rządzie Jerzego Buzka. Pełnił tę funkcję do 19 października 2001. Po rezygnacji Mirosława Sekuły objął 25 lipca 2001 na okres około trzech miesięcy mandat posła na Sejm III kadencji. W wyborach parlamentarnych w tym samym roku bez powodzenia ubiegał się o mandat senatora z ramienia Bloku Senat 2001.