Od 2000 do 2019 należał do Sojuszu Lewicy Demokratycznej. Z jego ramienia w latach 2002–2010 zasiadał w Radzie Miasta Biała Podlaska. W wyborach do Parlamentu Europejskiego w 2004 bez powodzenia ubiegał się o mandat eurodeputowanego z listy koalicji SLD-UP. W wyborach samorządowych w 2010 z ramienia SLD uzyskał mandat radnego Sejmiku Województwa Lubelskiego z okręgu wyborczego nr 3, zdobywając 13 982 głosy (9,57% głosów w okręgu). W 2014 jako kandydat SLD Lewica Razem uzyskał reelekcję, otrzymując 13 133 głosy (9,51% głosów w okręgu). W wyborach parlamentarnych w 2015 bez powodzenia kandydował do Sejmu jako lider listy Zjednoczonej Lewicy w okręgu nr 7. W wyborach samorządowych w 2018 ponownie został wybrany na radnego sejmiku, uzyskując 18 826 głosów (11,93% głosów w okręgu).
W eurowyborach w 2019 bezskutecznie kandydował z listy Koalicji Europejskiej do Parlamentu Europejskiego. Uzyskał wówczas 16 858 głosów. Po odejściu z SLD w wyborach parlamentarnych w 2019 wystartował do Sejmu z pierwszego miejsca na liście Koalicji Obywatelskiej w okręgu chełmskim.