Od 1987 do 1988 był trenerem Widzewa Łódź.

Ponadto był trenerem głównie drużyn śląskich, m.in. trzykrotnie Ruchu Chorzów, dwukrotnie Katowic (runda wiosenna sezonu 1989/1990 i sezon 1990/1991, w którym został zwolniony w kwietniu 1991, następnie runda jesienna sezonu 1995/1996 – odszedł po 13 kolejkach) i Śląska Wrocław. W październiku 2005 w wieku 63 lat powrócił po trzyletniej przerwie do pracy trenerskiej, do Bełchatowa. W pierwszym sezonie utrzymał go w ekstraklasie, a w kolejnym z zespołem, w którym grali m.in. Piotr Lech, Radosław Matusiak, Paweł Strąk, Łukasz Garguła i Dawid Nowak, zdobył wicemistrzostwo Polski 2006/2007. Został zwolniony w marcu 2008 po pięciu porażkach ligowych z rzędu.

16 kwietnia 2009 został trenerem pierwszoligowego Zagłębia Lubin, z którym wywalczył awans do Ekstraklasy. 17 czerwca 2009 oficjalnie poinformowano, że jego kontrakt, wygasający 30 czerwca, nie zostanie przedłużony. Jego następcą został Andrzej Lesiak. Od 12 sierpnia 2009 do 24 maja 2010 był trenerem Cracovii.