Magnus war ein unehelicher Sohn von König Olaf Haraldsson (später St. Olaf), von seiner englischen Konkubine Alfhild, ursprünglich ein Sklave (Knecht) von Olafs Königin Astrid Olofsdotter. Das zu früh geborene Kind war in den ersten Minuten schwach und unfähig zu atmen, und es wurde wahrscheinlich nicht erwartet, dass es überlebt. Olaf war bei der Geburt des Kindes nicht anwesend, und sein isländischer Skald Sigvatr Þórðarson wurde sein Pate. In einer eiligen Taufe benannte Sigvatr Magnus nach dem größten König, den er kannte, auch Olafs größtes Vorbild, Karla Magnus oder Karl der Große. Trotz aller Widrigkeiten wurde Magnus stark und gesund, und er wurde für Olaf als sein einziger Sohn von entscheidender Bedeutung.
Olaf wurde 1028 vom dänischen König Knut dem Großen entthront und ging mit seiner Familie und seinem Hof, einschließlich des jungen Magnus, ins Exil. Sie reisten über die Berge und durch Eidskog im Winter, eingegeben Värmland, und wurden von einem Häuptling namens Sigtrygg in Närke Schutz gegeben. Nach einigen Monaten verließen sie Närke und zogen im März nach Osten in Richtung Sigtuna, wo der schwedische König Anund Jacob ihnen ein Schiff überlassen hatte. Die Partei segelte danach durch die Ostsee und in den Finnischen Meerbusen und landete schließlich in Kiewer Rus (Garðaríki). Sie machten ihren ersten Halt in Staraya Ladoga (Aldeigjuborg), um die weitere Reise zu organisieren. Von dort reisten sie nach Süden nach Nowgorod (Holmgard), wo Olaf Hilfe von Großfürst Jaroslaw dem Weisen suchte. Jaroslaw wollte sich jedoch nicht direkt in die skandinavischen Machtkämpfe einmischen und lehnte es ab zu helfen. Nach einiger Zeit, Anfang 1030, erfuhr Olaf, dass der Graf von Lade Håkon Eiriksson, Cnuts Regent in Norwegen, auf See verschwunden war, und versammelte seine Männer, um schnell nach Norwegen zurückzukehren. Magnus wurde von Jaroslaw und seiner Frau Ingegerd gefördert.
Anfang 1031 traf eine Gruppe ein, darunter Magnus ‚Onkel Harald Sigurdsson (später auch König und dann bekannt als Harald Hardrada), um die Nachricht vom Tod seines Vaters in der Schlacht von Stiklestad zu melden. In den nächsten Jahren wurde Magnus in Altrussisch und etwas Griechisch erzogen und zum Krieger ausgebildet. Im Jahr 1030 ernannte Cnut seine erste Frau Ælfgifu und ihren Sohn Svein zu Regenten, aber die Norweger fanden ihre Herrschaft bedrückend und zum Zeitpunkt von Cnuts Tod im Jahr 1035 waren sie vertrieben worden und Magnus wurde als König gegründet. Einar Thambarskelfir und Kalf Arnesson, die beide nach Olafs Tod 1030 unter Knut zu Regenten ernannt worden waren, waren zusammen nach Kiewer Rus gegangen, um den Jungen wieder als König von Norwegen zu regieren. Nachdem sie die Zustimmung von Ingegerd erhalten hatten, kehrten sie Anfang 1035 mit Magnus nach Sigtuna zurück und erhielten Unterstützung vom schwedischen König, dem Bruder von Magnus ‚Stiefmutter Astrid. Astrid wurde sofort eine wichtige Unterstützerin von Magnus, und eine Armee wurde in Schweden versammelt, angeführt von Einar und Kalf, um Magnus auf den norwegischen Thron zu setzen.