Działał w Unii Wolności i Partii Demokratycznej, z której w 2006 przeszedł do Platformy Obywatelskiej. W wyborach w 2006 i 2010 z jej listy był wybierany na radnego Legnicy. W 2006 bez powodzenia ubiegał się o stanowisko prezydenta miasta, przegrywając w pierwszej turze. Był przewodniczącym rady miejskiej, został odwołany z funkcji w 2009.
W wyborach w 2007 bezskutecznie startował do Sejmu w okręgu legnickim z listy Platformy Obywatelskiej. 16 grudnia 2010 objął mandat poselski w miejsce Janusza Mikulicza. W wyborach do Sejmu w 2011 z powodzeniem ubiegał się o reelekcję, dostał 6029 głosów.
W 2015 został ponownie wybrany do Sejmu, otrzymując 8439 głosów. W Sejmie VIII kadencji był członkiem Komisji Nadzwyczajnej do rozpatrzenia projektu uchwały w sprawie zmiany Regulaminu Sejmu (2015), Komisji Odpowiedzialności Konstytucyjnej (2015–2017), Komisji Sprawiedliwości i Praw Człowieka (2015–2017) oraz Komisji Ustawodawczej (2015–2017). W 2017 został członkiem Komisji do spraw reprywatyzacji nieruchomości warszawskich. W wyborach w 2019 również z powodzeniem ubiegał się o poselską reelekcję, otrzymując 14 714 głosów. W 2023 utrzymał mandat na kolejną kadencję (z wynikiem 31 838 głosów).