W latach 1950–1954 studiował historię na Uniwersytecie Warszawskim. Od 1954 do 2000 pracownik Instytutu Historycznego tejże uczelni. Był aspirantem w Instytucie Nauk Społecznych przy KC PZPR w latach 1954–1957. W 1960 obronił rozprawę doktorską pt. Polska Partia Socjalistyczna 1917–1919, przygotowaną na seminarium Żanny Kormanowej.
W 1990 uzyskał tytuł profesora. Pełnił m.in. funkcję kierownika Zakładu Studiów nad Niemcami. Był wieloletnim pracownikiem Instytutu Studiów Politycznych PAN oraz Collegium Civitas, członkiem Polskiej Akademii Nauk. Wykładał na uniwersytetach w Moguncji, Fryburgu Bryzgowijskim i Berlinie.
Od 1978 współpracował z Komitetem Obrony Robotników. Był stałym autorem wydawnictw bezdebitowych „Biuletyn Informacyjny”, „Zapis” oraz „Głos”. Uczestniczył w niezależnym seminarium naukowym dotyczącym historii najnowszej (wraz m.in. z Krystyną Kersten, Andrzejem Paczkowskim, Anną Radziwiłł, Adamem Michnikiem, Maciejem Koźmińskim i Marią Turlejską)Opozycja w PRL. Słownik biograficzny 1956–89. Tom 1. Ośrodek KARTA, Warszawa 2000. s. 127..