Później przystąpił do Prawa i Sprawiedliwości i został przewodniczącym struktur tej partii w okręgu krakowskim.

W 2005 z listy PiS został wybrany do Sejmu V kadencji w okręgu krakowskim, otrzymując 1582 głosy. W wyborach parlamentarnych w 2007 po raz drugi uzyskał mandat poselski z wynikiem 3421 głosów. W 2011 z powodzeniem ubiegał się o reelekcję, dostał 14 297 głosów.

W 2015 został ponownie wybrany do Sejmu, otrzymując 18 514 głosów. 16 listopada tego samego roku powołany na ministra infrastruktury i budownictwa w rządzie Beaty Szydło. 11 grudnia 2017 objął to stanowisko w nowo utworzonym rządzie Mateusza Morawieckiego. 9 stycznia 2018 został odwołany z zajmowanej funkcji, po czym tego samego dnia mianowany ministrem infrastruktury.

W wyborach w 2019 z powodzeniem ubiegał się o poselską reelekcję, otrzymując 29 686 głosów. 15 listopada 2019 objął ponownie urząd ministra infrastruktury, wchodząc w skład drugiego rządu dotychczasowego premiera. W wyborach w 2023 utrzymał mandat poselski na kolejną kadencję (z wynikiem 45 171 głosów). 27 listopada tego samego roku zakończył pełnienie funkcji ministra.