W latach 1950–1952 studiował historię na Uniwersytecie Mikołaja Kopernika w Toruniu, w latach 1952-1953 na Uniwersytecie Warszawskim, w latach 1953-1959 pracował jako kustosz i archiwista w Centralnym Archiwum Wojskowym, w 1955 wznowił studia historyczne jako ekstern na Uniwersytecie Warszawskim, w 1958 obronił pracę magisterską napisaną pod kierunkiem Stefana Kieniewicza.

W 1969 obronił na Uniwersytecie Warszawskim pracę doktorską Wojsko a polityka wewnętrzna Drugiej Rzeczypospolitej w latach 1935-1939 napisaną pod kierunkiem Henryka Jabłońskiego i w tym samym roku rozpoczął pracę w Wojskowym Instytucie Historycznym, kolejno jako adiunkt (1969-1980), docent (1980-1991) i profesor (1991-1998), w latach 1992-1998 kierował tam Zakładem Polskiej i Powszechnej Historii Wojskowej do 1939 r. W 1980 otrzymał stopień doktora habilitowanego (w Instytucie Historii PAN), w 1991 tytuł profesora nauk humanistycznych.

Był członkiem rady naukowej Wojskowego Instytutu Historycznego (1982-2000) i Polskiego Słownika Biograficznego (1985-2000). Od 1958 był członkiem Polskiego Towarzystwa Historycznego, w latach 1992-1996 należał do ZG PTH.