W latach 1996–1997 należał do Ruchu Odbudowy Polski, a od 2001 był członkiem PiS. 5 września 2007 złożył rezygnację z członkostwa w tym ugrupowaniu. 8 września 2007 zadeklarował, że w przedterminowych wyborach parlamentarnych w 2007 wystartuje z list Platformy Obywatelskiej. Z ramienia PO dostał się po raz trzeci z rzędu do Sejmu, uzyskując najwięcej głosów (42 052) spośród wszystkich kandydatów startujących w okręgu toruńsko-włocławskim. W wyborach w 2011 z powodzeniem ubiegał się o reelekcję, dostał 17 077 głosów.

W 2015 został ponownie wybrany do Sejmu, otrzymując 9285 głosów. W Sejmie VIII kadencji został członkiem Komisji Cyfryzacji, Innowacyjności i Nowoczesnych Technologii oraz Komisji Gospodarki i Rozwoju.

W wyborach w 2019 został wybrany w skład Senatu X kadencji. Kandydował z ramienia Koalicji Obywatelskiej w okręgu nr 11, otrzymując 98 699 głosów. Nie kandydował w kolejnych wyborach w 2023.