W latach 1976–1990 był członkiem Polskiej Zjednoczonej Partii Robotniczej, następnie współtworzył Polską Unię Socjaldemokratyczną i Wielkopolską Unię Socjaldemokratyczną, w 1992 został jednym z założycieli Unii Pracy. Od 1989 do 1991 sprawował mandat posła wybranego z ramienia PZPR na Sejm kontraktowy. Pełnił funkcję wiceprzewodniczącego Komisji Nadzwyczajnej do rozpatrzenia projektów ustaw związanych ze stabilizacją gospodarczą oraz zmianami systemowymi, a także wiceprzewodniczącego Komisji Przekształceń Własnościowych. W trakcie kadencji przeszedł do Poselskiego Klubu Pracy, utworzonego przez posłów Polskiej Unii Socjaldemokratycznej. Po zakończonej kadencji Sejmu był społecznym ekspertem gospodarczym Polskiego Stronnictwa Ludowego, współpracował również z tą partią m.in. podczas zakończonych niepowodzeniem negocjacji w sprawie utworzenia w 1992 rządu pod kierownictwem Waldemara Pawlaka.
W 1997 nie uzyskał mandatu poselskiego (UP nie przekroczyła wówczas progu wyborczego). W tym samym roku objął funkcję prezesa Towarzystwa Naukowego Organizacji i Kierownictwa, zajmując to stanowisko do 1998. 28 marca 1998 na VI kongresie Unii Pracy wybrano go na przewodniczącego partii. Wkrótce w imieniu UP zawarł z PSL oraz Krajową Partią Emerytów i Rencistów koalicję pod nazwą Przymierze Społeczne celem wspólnego startu w wyborach samorządowych w 1998. Lista uzyskała łącznie 89 mandatów w sejmikach (które przypadły głównie kandydatom PSL).
Wybrano go wówczas po raz trzeci na posła z okręgu konińskiego, uzyskał 42 546 głosów. 6 października 2001 objął urząd wicepremiera i ministra infrastruktury w rządzie Leszka Millera, zajmując te stanowiska do 2 maja 2004. W 2003 doprowadził do uchwalenia tzw. specustawy drogowej, zakładającej uproszczenie procesu pozyskiwania gruntów pod budowę dróg. W 2004 doprowadził do utworzenia Krajowego Funduszu Drogowego oraz do wprowadzenia (po odrzuceniu przez Sejm projektu opłat winietowych) obligatoryjnej opłaty paliwowej, stanowiącej źródło środków krajowych na budowę i remonty dróg. Kierował negocjacjami akcesyjnymi Polski do Unii Europejskiej w kilku obszarach negocjacyjnych. Przewodniczył także negocjacjom z rządem Ukrainy w sprawie budowy rurociągu Odessa-Brody oraz negocjacjom z rządem Rosji w sprawie zmian w umowie gazowej z 1993.
W 2004 zrezygnował z ponownego kandydowania na stanowisko przewodniczącego Unii Pracy, obejmując funkcję przewodniczącego rady krajowej tej partii. W 2005 bez powodzenia kandydował do Sejmu z listy Socjaldemokracji Polskiej (w ramach porozumienia wyborczego). Po porażce powrócił do działalności w gospodarce. 11 marca 2017 złożył rezygnację z funkcji przewodniczącego rady krajowej UP.