Sprawował mandat poselski na Sejm PRL IX kadencji, ponownie był wybierany w 1991, 1993, 1997, 2001 i 2005. W wyborach parlamentarnych w 2007 po raz siódmy został posłem, kandydując z listy koalicji Lewica i Demokraci w okręgu legnickim i otrzymując 42 724 głosy. W Sejmie był przewodniczącym klubu parlamentarnego SLD (dwukrotnie) oraz przewodniczącym Komisji Obrony Narodowej.
W październiku 2001 objął stanowisko ministra obrony narodowej w rządzie Leszka Millera. 21 kwietnia 2004 został tymczasowo pełniącym obowiązki ministra spraw wewnętrznych i administracji (w związku z wyborem dotychczasowego ministra Józefa Oleksego na stanowisko marszałka Sejmu). Zachował stanowisko ministra obrony narodowej w pierwszym i drugim rządzie Marka Belki, zajmując je do października 2005. Był także członkiem komitetu wyborczego Włodzimierza Cimoszewicza w wyborach prezydenckich w 2005.
W 2007 został wicemarszałkiem VI kadencji. W czerwcu 2008 został wiceprzewodniczącym Sojuszu Lewicy Demokratycznej. Od tegoż roku zasiadał w klubie poselskim Lewica. W grudniu 2009 został ogłoszony kandydatem SLD w wyborach prezydenckich w 2010.