Ukończył studia historyczne na UW w 1948. W czasie studiów był pracownikiem Komisji Badania Zbrodni Niemieckich w Polsce (1946–1947) i Muzeum Wojska Polskiego (1947–1948). Od 1946 był również zatrudniony jako asystent, a po magisterium jako starszy asystent w Instytucie Historii UW. Równocześnie pracował w Centralnej Szkole Partyjnej. Z inicjatywy prof. Tadeusza Manteuffla skierowany na studia aspiranckie na Wydziale Historycznym Uniwersytetu Leningradzkiego im. A. Żdanowa (1949–1953). Na podstawie pracy Antynarodowa polityka endecji w rewolucji 1905–1907 napisanej pod kierunkiem prof. dra uzyskał 4 maja 1953 stopień kandydata nauk (odpowiednik doktora). Praca doktorska została wydana przez PWN w 1955. Po zakończeniu studiów w Leningradzie wrócił do Warszawy, gdzie został zatrudniony na stanowisku adiunkta, a następnie docenta w Instytucie Historycznym UW (do 1955) i równocześnie w nowo powstałym Instytucie Historii Polskiej Akademii Nauk. W PAN pracował do końca życia, najpierw jako kierownik działu, następnie jako kierownik Pracowni Dziejów Klasy Robotniczej i kierownik Zakładu Dziejów Nowożytnego Społeczeństwa i Państwa Polskiego, wreszcie od stycznia 1980 jako kierownik Zakładu Dziejów Społecznych Polski XIX i XX w. Od 1954 docent, od 1963 profesor nadzwyczajny.