Stackelberg begann seine Laufbahn 1714 als Freiwilliger im schwedischen Tavastehussche Infanterieregiment und 1716 bei der Admiralität. Zwischenzeitlich zum Fähnrich avanciert, trat er als Leutnant in das hessische Leib-Grenadier-Regiment ein und wurde 1726 hessen-kasselscher Hofjunker. 1731 wurde er schwedischer Kammerherr und trat als Kapitän in das kaiserliche Regiment Alt-Württemberg ein. Er nahm mit diesem am Polnischen Thronfolgekrieg teil und wurde 1735 Kammerherr des Herzogs von Württemberg. Auch im Österreichisch-Russischen Türkenkrieg focht er mit diesem Regiment und erhielt schließlich 1738 seine Beförderung zum Oberstleutnant. Mit diesem Rang wechselte er 1739 in dänische Dienste zum 3. Jütländischen Regiment und nahm 1746 seinen Abschied. Nun begab er sich zurück in schwedische Dienste und in das Infanterieregiment in Åbo ein. 1748 wurde er Ritter des Schwertordens und avancierte 1749 zum Oberst. Er nahm am Siebenjährigen Krieg teil. Sein Aufstieg zum Generalmajor erfolgte 1760, der zum Generalleutnant 1770. Als Oberbefehlshaber aller Truppen in Finnland stand er seit 1776 in der Verantwortung, was er bis 1780 auch blieb. Sein Regiment verließ er 1777 und avancierte 1778 zum Feldmarschall.