В 1878 вступил в ряды ВМС Германии. В 1887-88 командовал портом в Камеруне. С 1910 младший флагман разведывательных судов Большого флота открытого моря. В 1912 директор Общего департамента Имперского морского управления.
С конца 1912 командовал Восточно-Азиатской крейсерской эскадрой, предназначенной для защиты колоний. В случае войны эскадра должна была действовать на океанских сообщениях противника. Базой эскадры определен арендованный у Китая порт Циндао в бухте Киаочао. В состав сил Шпее входили броненосные крейсера «Шарнхорст» и «Гнейзенау», лёгкие крейсера «Эмден», «Нюрнберг» и «Лейпциг». Его экипажи имели хорошую подготовку, но корабли были уже устаревшими.
После начала войны 13 августа 1914 Шпее собрал совещание, после которого отдал приказ «Эмдену» развернуть военные действия на коммуникации союзников в Индийском океане, а остальным силам двигаться к побережью Чили. 12 октября эскадра прибыла к острову Пасхи, где к ней присоединился крейсер «Дрезден».
01.11.1914 у чилийского порта Коронель Шпее разгромил крейсерскую эскадру контр-адмирала Крэдока, потопив броненосные крейсера «Гуд Хоуп» и «Монмут». Лёгкий крейсер «Глазго» и вспомогательный крейсер «Отранто» спаслись бегством. Германские корабли получили четыре попадания, в бою было ранено только два матроса.
После этого для борьбы со Шпее направлена эскадра под командованием Д. Стэрди в составе двух линейных крейсеров(«Инвинсибл» и «Инфлексибл»), трех броненосных («Карнарвон», «Кент», «Корнуолл»), двух лёгких и двух вспомогательных крейсеров.. 8 декабря, имея абсолютное преимущество в силах, Стэрди настиг Шпее у Фолклендских островов. Около 13 часов «Инвинсибл» начал обстрел «Лейпцига». Шпее принял решение принять бой двумя тихоходными броненосными крейсерами, у которых не было шансов уйти от погони. Он отдал приказ лёгким крейсерам рассредоточиться и уходить. Стэрди, опасаясь артиллерии Шпее, вел огонь с дальней дистанции и к 14 часам вообще вышел за дальность огня. Затем, приблизившись на расстояние 11 километров, он начал расстреливать «Шарнхорст» и «Гнейзенау». Попытки Шпее, пожертвовав «Шарнхорстом», спасти «Гнейзенау» путём решительного поворота в сторону противника успеха не имели, и оба корабля погибли. После чего линейные крейсера приступили к вылавливанию из воды немецких моряков. В «Инвинсибл» попало 22 снаряда, в «Инфлексибл» — 3, англичане потеряли 5 человек (в том числе одного убитым).
Английские крейсера догнали и потопили лёгкие крейсера «Лейпциг» и «Нюрнберг». Лёгкий крейсер «Дрезден» и госпитальное судно «Зейдлиц» ушли, но уже 14 марта 1915 «Дрезден» был потоплен у берегов Чили. Потери эскадры составили свыше 2 100 человек, в том числе сам Шпее и двое его сыновей (старший Отто - на борту бронепалубного крейсера "Нюрнберг", младший Генрих - на борту броненосного крейсера "Гнейзенау").