Podczas I wojny światowej był dowódcą okrętów podwodnych SM UC-74 i SM UB-105. Zatopił 43 statki i slup wojenny HMS „Cowslip”. Jego zasługi zostały uhonorowane najwyższym niemieckim orderem wojskowym Pour le Mérite. Po zakończeniu konfliktu służył w marynarce Republiki Weimarskiej, a później III Rzeszy. W 1934 roku został dowódcą pancernika kieszonkowego „Admiral Schreer”. W 1936 roku wstąpił do Oberkommando der Marine, a po wybuchu hiszpańskiej wojny domowej dowodził marynarką niemiecką operującą u wybrzeży Hiszpanii. W 1939 roku awansowano go do stopnia Admirala i powierzono mu stanowisko . Gdy rozpoczęła się II wojna światowa, Marschall pływał na pancerniku „Scharnhorst”. 23 listopada tego roku jego okręty zatopiły brytyjski krążownik pomocniczy HMS „Rawalpindi”. Podczas inwazji na Norwegię w 1940 roku przeprowadził operację „Juno”, podczas której udało się Niemcom zatopić liczne okręty alianckie, w tym lotniskowiec HMS „Glorious” i dwa niszczyciele. „Scharnhorst” został jednak uszkodzony, co rozsierdziło dowództwo. Marschall został zastąpiony jako Flottenchef Güntherem Lütjensem. Admirał zajął się nadzorowaniem edukacji marynarzy. W 1942 roku został dowódcą Kriegsmarine w okupowanej Francji. 1 lutego 1943 roku awansowano go do Generaladmirala, jednak również zastąpiono Theodorem Kranckem. Do końca wojny nie pełnił ważniejszych funkcji. Od 1945 roku przebywał w niewoli alianckiej, z której zwolniono go w 1947 roku.