W 1976 ukończył historię na Wydziale Historycznym Uniwersytetu Warszawskiego. Następnie został pracownikiem Instytutu Historii PAN. W latach 1977–1981 był członkiem Polskiej Zjednoczonej Partii Robotniczej. Wchodził w skład egzekutywy POP PZPR IH PAN. W 1982 obronił doktorat, w 1993 habilitował się. W 2002 uzyskał tytuł naukowy profesora nauk humanistycznych. W 2011 został kierownikiem Zakładu Badań nad Dziejami Polski po 1945 roku IH PAN. Pracę w IH PAN łączył z wykładami na Uniwersytecie Warszawskim oraz w Wyższej Szkole Mazowieckiej. W 2002 objął także stanowisko dyrektora oddziału Instytutu Pamięci Narodowej w Warszawie.