Der junge Prinz wurde an der dänischen Militärakademie Sorö ausgebildet und wurde ein herausragender Soldat, der als General zum Ende des Dreißigjährigen Krieges den Befehl über die schwedischen Truppen in Deutschland übernahm. Ende Juli 1648 landete er in Vorpommern und leitete im Oktober des Jahres die Belagerung von Prag, das er vor dem Abschluss des Westfälischen Friedens aber nicht vollständig erobern konnte. Als schwedischer Befehlshaber hielt er sich unter anderem in Nürnberg auf, wo er 1649 anlässlich des Kriegsendes ein größeres Festmahl gab. Als seine Cousine, Königin Christina, ihre Absicht signalisierte, ihn zu heiraten, erreichte sie 1649 seine Ernennung zum Thronfolger und Erbprinzen von Schweden durch den Reichstag. 1650 erklärte Christina jedoch kategorisch, niemals heiraten zu wollen (wohl auch, weil Karl Gustav im März 1649 ein unehelicher Sohn geboren worden war), und dankte am 16. Juni 1654 ab. Schon am folgenden Tage wurde Karl ihr Nachfolger. Nach dem Dreißigjährigen Krieg versuchte er als erstes, die Staatsfinanzen zu sanieren.