W wyborach parlamentarnych w 1991 bez powodzenia ubiegał się o mandat poselski z listy SLD w okręgu gliwickim. W latach 1993–2007 z ramienia tego ugrupowania sprawował mandat poselski na Sejm II, III, IV i V kadencji. Od 1998 do 2001 był także radnym Sejmiku Województwa Śląskiego. Od maja do lipca 2004 wykonywał mandat posła do Parlamentu Europejskiego V kadencji. W przedterminowych wyborach w 2007 nie ubiegał się o reelekcję (został wykreślony z listy Lewicy i Demokratów tuż przed rejestracją).
W styczniu 2008 został powołany na stanowisko wicemarszałka województwa śląskiego w ramach koalicji PO, PR, PSL i LiD. Objął również funkcję prezesa Śląskiej Organizacji Turystycznej. W 2010 uzyskał mandat radnego sejmiku IV kadencji. W wyborach w 2011 z powodzeniem ubiegał się o ponowny wybór do Sejmu, dostał wówczas 9482 głosy. Przez kilka lat był przewodniczącym rady wojewódzkiej SLD w Katowicach. W marcu 2012 przegrał w wyborach na przewodniczącego struktur tej partii w województwie śląskim z posłem Markiem Baltem. W wyborach w 2015 nie uzyskał poselskiej reelekcji. W styczniu 2016 został wiceprzewodniczącym SLD. W wyborach samorządowych w 2018 bezskutecznie kandydował na radnego województwa. W lipcu 2019 odszedł z SLD. W 2022 został przewodniczącym śląskiego oddziału Stowarzyszenia Lewicy Demokratycznej.