W styczniu 1990 został jednym z członków założycieli Socjaldemokracji RP. Od 1997 do 1999 pełnił funkcję sekretarza generalnego tej partii. W 1999 przystąpił do Sojuszu Lewicy Demokratycznej, do 2002 był sekretarzem generalnym również tego ugrupowania. W lutym 2002 został wybrany na wiceprzewodniczącego partii. W wyborach parlamentarnych w 1991 bez powodzenia kandydował do Sejmu z listy SLD. W 1993, 1997 i 2001 uzyskiwał mandat poselski z ramienia tego ugrupowania (w 2001 z okręgu tarnowskiego). W Sejmie II kadencji był zastępcą przewodniczącego Komisji Sprawiedliwości, a w Sejmie III kadencji zastępcą przewodniczącego Komisji Samorządu Terytorialnego i Polityki Regionalnej.

W latach 1996–1997 był podsekretarzem stanu w Kancelarii Prezydenta RP, zajmował się sprawami samorządowymi. Kierował kampanią samorządową SLD w trakcie wyborów samorządowych w 1998. 19 października 2001 został ministrem spraw wewnętrznych i administracji w rządzie Leszka Millera. Podał się do dymisji 21 stycznia 2004. 6 marca tego samego roku został przewodniczącym SLD, ale 18 grudnia przegrał wybory na przewodniczącego SLD z Józefem Oleksym.