W 2005 z listy PiS został wybrany na posła V kadencji w okręgu chełmskim. W wyborach parlamentarnych w 2007 po raz drugi uzyskał mandat poselski, otrzymując 16 064 głosy. W 2009 bez powodzenia kandydował do Parlamentu Europejskiego. W 2010 startował w wyborach na stanowisko prezydenta Zamościa, przegrał w I turze z Marcinem Zamoyskim. W wyborach do Sejmu w 2011 z powodzeniem ubiegał się o reelekcję, dostał 24 478 głosów. W 2014 ponownie bezskutecznie kandydował do PE, zaś w 2015 został ponownie wybrany do Sejmu, otrzymując 25 236 głosów. W wyborach do Parlamentu Europejskiego w 2019 bezskutecznie ubiegał się o mandat posła do PE w okręgu obejmującym województwo lubelskie.
W wyborach w tym samym roku utrzymał natomiast mandat posła na Sejm na kolejną kadencję (poparło go wówczas 24 346 osób). We wrześniu 2020 został przez prezesa PiS Jarosława Kaczyńskiego zawieszony w prawach członka partii za złamanie dyscypliny klubowej poprzez brak udziału w głosowaniu dotyczącym nowelizacji ustawy o ochronie zwierząt. W tym samym miesiącu przestał pełnić funkcję pełnomocnika terenowego partii w Zamościu. Zawieszenie w prawach członka partii wygasło w listopadzie tego samego roku. W 2023 został po raz kolejny wybrany do Sejmu, zdobywając 10 936 głosów.