W latach 1984–1990 pracował jako nauczyciel historii w warszawskich liceach ogólnokształcących, głównie w II Liceum Ogólnokształcącym im. Stefana Batorego. Od 1997 do 2006 zatrudniony w Instytucie Historii Polski Polskiej Akademii Nauk im. Tadeusza Manteuffla. W 1996 doktoryzował się tam na podstawie pracy pt. Stosunki między władzą państwową a Kościołem katolickim w Polsce w latach 1945–1950. W grudniu 2000 został zatrudniony w Biurze Edukacji Publicznej Instytutu Pamięci Narodowej. W 2003 został również wykładowcą Uniwersytetu Kardynała Stefana Wyszyńskiego, początkowo jako kierownik katedry Historii Kościoła w Czasach Najnowszych, później jako profesor w tej katedrze oraz w Instytucie Nauk Historycznych UKSW. Od 2003 do 2006 wykładał także na Uniwersytecie Warszawskim. W 2004, na podstawie rozprawy Dzieje Kościoła katolickiego w Polsce 1944–1989, uzyskał w Instytucie Historii PAN stopień doktora habilitowanego. Postanowieniem prezydenta RP z 26 lutego 2013 otrzymał tytuł naukowy profesora nauk humanistycznych..