W 1979 ukończył Zespół Szkół Budowlanych w Krzeszowicach. W 2014 w olkuskiej filii Społecznej Akademii Nauk w Łodzi uzyskał licencjat na kierunku rachunkowość i finanse w zarządzaniu – analiza finansowa przedsiębiorstw. Tytuł zawodowy magistra otrzymał w tej samej jednostce w 2016. Pod adresem jego pracy magisterskiej padały zarzuty o plagiat, zarzucano też przyspieszony tryb samych studiów magisterskich[1]. Kwestia wykształcenia ministra stała się przedmiotem interpelacji poselskiej[2] i wniosku do sądu ze strony dziennikarki[3]. We wrześniu 2018 Wojewódzki Sąd Administracyjny w Łodzi nakazał Społecznej Akademii Nauk ujawnienie szczegółów dotyczących pracy dyplomowej[4][5].
Od końca lat 70. pracował w Biurze Głównego Mechanika Chrzanowskich Zakładów Materiałów Ogniotrwałych, a od 1982 na stanowisku specjalisty działu do spraw inwestycji i remontów w Rejonowej Spółdzielni Zaopatrzenia i Zbytu w Krzeszowicach. Od 1984 był zatrudniony w zakładzie remontowo-budowlanym jako mistrz budowy, kierownik budowy oraz kierownik zakładu. Specjalizował się w zakresie kierowania budowami, a od lat 90. także w wycenach kosztów inwestycji budowlanych. Uzyskał uprawnienia w zakresie kontroli i nadzorowania budów i robót, a także projektowania i badania stanu technicznego budynków. Został członkiem Małopolskiej Izby Inżynierów Budownictwa[6].
W 2005 z listy PiS został wybrany do Sejmu V kadencji w okręgu krakowskim liczbą 1582 głosów. W wyborach parlamentarnych w 2007 po raz drugi uzyskał mandat poselski, otrzymując 3421 głosów. W 2011 z powodzeniem ubiegał się o reelekcję, dostał 14 297 głosów[7].
W 2015 został ponownie wybrany do Sejmu, otrzymując 18 514 głosów[8]. 16 listopada tego samego roku powołany na ministra infrastruktury i budownictwa w rządzie Beaty Szydło[9]. 11 grudnia 2017 objął to stanowisko w nowo utworzonym rządzie Mateusza Morawieckiego[10]. 9 stycznia 2018 został odwołany z zajmowanej funkcji, a następnie tego samego dnia mianowany ministrem infrastruktury[11].
W wyborach w 2019 z powodzeniem ubiegał się o poselską reelekcję, otrzymując 29 686 głosów[12]. 15 listopada 2019 objął ponownie urząd ministra infrastruktury, wchodząc w skład drugiego rządu dotychczasowego premiera[13].