Od 1982 do 1988 pracował jako nauczyciel w szkołach w Proszowicach. W 1988 został wykładowcą Uniwersytetu Jagiellońskiego. W 2008 objął funkcję dyrektora Instytutu Nauk Politycznych i Stosunków Międzynarodowych tej uczelni. W tym samym roku został profesorem UJ. Jest członkiem Ośrodka Myśli Politycznej. Został również wykładowcą w Państwowej Wyższej Szkole Wschodnioeuropejskiej w Przemyślu oraz Akademii Ignatianum w Krakowie. W 2002 został prezesem Stowarzyszenia Obywatelskiego Ziemi Proszowickiej Pro Publico Bono.
Został członkiem Krakowskiego Społecznego Komitetu Poparcia Jarosława Kaczyńskiego w przedterminowych wyborach prezydenckich w 2010.
W 2010 został członkiem Prawa i Sprawiedliwości. W 2011 z ramienia tej partii w wyborach parlamentarnych uzyskał mandat poselski. W 2015 z powodzeniem ubiegał się o poselską reelekcję. W 2019 bezskutecznie kandydował do Parlamentu Europejskiego. W wyborach w tym samym roku wystartował do Senatu w okręgu nr 34, zdobywając 97 648 głosów i uzyskując mandat senatora X kadencji.