Weizsäcker urodził się w Stuttgarcie w rodzinie Pauli von Meibom oraz Karla Hugona von Weizsäckera, który później został premierem Królestwa Wirtembergii, a w roku 1897 otrzymał tytuł szlachecki. W roku 1911 Ernst Weizsäcker poślubił Marianne von Graevenitz, należącą do starego rodu szlacheckiego. W 1916 roku uzyskał tytuł barona (Freiherr), a jego rodzina otrzymała szlachectwo dziedziczne. Miało to miejsce na 2 lata przed upadkiem niemieckiej monarchii. W roku 1900 Weizsäcker wstąpił do Niemieckiej Cesarskiej Marynarki (Kaiserliche Marine), gdzie, służąc głównie w Berlinie, zdobył stopień oficerski. Uczestniczył m.in. w bitwie jutlandzkiej. Był członkiem sztabu wiceadmirała Reinharda Scheera. W roku 1917, w końcowym okresie I wojny światowej, otrzymał Żelazny Krzyż (w obu klasach) i został awansowany do stopnia komandora podporucznika (Korvettenkapitän).