Od 1992 członek kolejnych rad wojewódzkich Unii Pracy: w województwie poznańskim, a następnie w województwie wielkopolskim. Od 2002 kierował regionalnymi strukturami tej partii, był także skarbnikiem UP. W latach 2001–2003 był drugim wicewojewodą, a później do 2006 pierwszym wicewojewodą wielkopolskim. Bez powodzenia kandydował do Sejmu z listy SLD-UP w wyborach parlamentarnych w 2001 i do Senatu z ramienia SDPL w wyborach w 2005.

25 lutego 2006 objął stanowisko przewodniczącego Unii Pracy. W tym samym roku z listy koalicji Lewica i Demokraci uzyskał mandat radnego sejmiku wielkopolskiego. W przedterminowych wyborach parlamentarnych w 2007 bezskutecznie kandydował do Sejmu, również z listy LiD. W 2010, startując z listy SLD, ponownie został radnym sejmiku, obejmując przewodnictwo w klubie radnych SLD. Mandat utrzymał również w 2014, startując z listy SLD Lewica Razem. Podczas kadencji zasiadał w klubie SLD-UP i pełnił funkcję wiceprzewodniczącego sejmiku. W wyborach w 2018 nie uzyskał reelekcji.

W wyborach w 2011 z listy SLD kolejny raz bez powodzenia ubiegał się o mandat poselski. W 2015 ponownie kandydował do Sejmu, jako lider poznańskiej listy wyborczej Zjednoczonej Lewicy.