W latach 1989–1991 był wikariuszem w parafii Gdów, a w latach 1991–1994 w parafii św. Szczepana w Krakowie. W latach 1997–2000 pełnił funkcję rektora kościoła św. Marka w Krakowie.

Został zatrudniony w Papieskiej Akademii Teologicznej w Krakowie (następnie Uniwersytecie Papieskim Jana Pawła II) na stanowiskach asystenta (od 1995), adiunkta (od 1999), profesora nadzwyczajnego (od 2006) i profesora zwyczajnego (od 2012). Objął wykłady z pedagogiki ogólnej, dydaktyki ogólnej, teorii wychowania, pedeutologii, współczesnych kierunków pedagogicznych, a także ćwiczenia z teorii wychowania. W 2005 został kierownikiem Katedry Pedagogiki Ogólnej. W latach 2006–2009 był delegatem uczelni w Uniwersyteckiej Komisji Programów Międzynarodowych przy Konferencji Rektorów Uniwersytetów Polskich. W 2008 koordynował organizację nowego Wydziału Nauk Społecznych, którego dziekanem był w latach 2008–2014. W latach 2014–2018 zajmował stanowisko prorektora Uniwersytetu Papieskiego Jana Pawła II ds. studenckich i dydaktyki. W latach 2017–2019 sprawował urząd rektora Wyższego Seminarium Duchownego Archidiecezji Krakowskiej. Współpracował z Uniwersytetem Pedagogicznym im.