W latach 1995-1999 był sekretarzem szczecińskiej Rady Miejskiej Socjaldemokracji Rzeczypospolitej Polskiej. Od 1999 roku przewodniczył Radzie Wojewódzkiej Sojuszu Lewicy Demokratycznej i pełnił funkcję sekretarza Rady Krajowej.
W latach 2001 - 2004 był przewodniczącym Rady Miejskiej SLD w Szczecinie, a ponadto w doradcą politycznym wojewody zachodniopomorskiego w latach 2002 – 2004. W 2002 – objął mandat radnego Miasta Szczecina i przewodniczył Klubowi Radnych SLD.
Złożył mandat w 2004 r. Zajął wówczas w Sejmie miejsce Bogusława Liberadzkiego, wybranego do Parlamentu Europejskiego. Zasiadał w sejmowej komisji administracji i spraw wewnętrznych oraz sejmowej komisji samorządu terytorialnego i polityki regionalnej. Wybrany posłem z listy SLD w 2005 r. i ponownie w kolejnych – przyspieszonych wyborach parlamentarnych w 2007 r. Od listopada 2005 roku zasiada w sejmowej komisji spraw zagranicznych.
Od 6 marca 2004 r. do 29 maja 2005 r. był wiceprzewodniczącym Sojuszu Lewicy Demokratycznej. Od maja 2005 roku pełnił funkcję sekretarza generalnego tej partii do 31 maja 2008 r., kiedy to na Kongresie SLD został wybrany na szefa Sojuszu. W 2009 objął też funkcję przewodniczącego Klubu Poselskiego Lewica zastępując wybranego do Parlamentu Europejskiego Wojciecha Olejniczaka.
22 kwietnia 2010 został ogłoszony kandydatem w przyspieszonych wyborach prezydenckich po katastrofie lotniczej pod Smoleńskiem, w której zginął poprzedni kandydat SLD - Jerzy Szmajdziński.
Sam mówi o sobie, że chce być polskim Zapatero i odnowić lewicę.