Berggren blev fänrik vid Hälsinge regemente 1915, löjtnant där 1917, kapten där 1930, vid generalstaben 1933 och vid Södermanlands regemente 1936. Han var stabschef i Boden 1933–1936 och vid infanteriinspektionen 1939–1941. Berggren blev major vid Jönköpings-Kalmar regemente 1937, överstelöjtnant vid generalstabskåren 1939 och vid Livregementets grenadjärer 1941. Han var chef för Svenska frivilligbataljonen i Finland på Hangöfronten 1941. Berggren blev överste och chef för Arméns underofficersskola 1942. Han var chef för Hälsinge regemente 1946–1955. Berggren blev riddare av Svärdsorden 1936, kommendör av andra klassen av samma orden 1946 och kommendör av första klassen 1949.