W 1993 bez powodzenia kandydował do Sejmu z listy Unii Demokratycznej w Olsztynie. Z ramienia Platformy Obywatelskiej w 2001 i w 2005 uzyskiwał mandat posła na Sejm IV i V kadencji w okręgu elbląskim. W wyborach parlamentarnych w 2007 kandydował do Senatu, wygrywając wybory w tym samym okręgu z wynikiem 89 766 głosów. W 2011 z powodzeniem ubiegał się o reelekcję, w nowym okręgu jednomandatowym dostał 33 627 głosów.
W 2015 nie został wybrany na kolejną kadencję. W styczniu 2016 objął funkcję sekretarza miasta w Olsztynie, w związku z czym wystąpił z PO. Z listy Koalicji Obywatelskiej w 2018 uzyskał mandat radnego sejmiku warmińsko-mazurskiego. W 2019 ponownie bez powodzenia kandydował do Senatu. W wyborach parlamentarnych w 2023 uzyskał mandat posła X kadencji z ramienia KO w okręgu elbląskim i otrzymując 7979 głosów. W 2025 ponownie przystąpił do PO, przekształconej w tym samym roku w partię KO.