Magnus era un figlio illegittimo del re Olaf Haraldsson (poi St. Olaf), dalla sua concubina inglese Alfhild, in origine uno schiavo (schiavo) della regina di Olaf Astrid Olofsdotter. Nato prematuramente, il bambino era debole e incapace di respirare per i primi minuti, e probabilmente non ci si aspettava che sopravvivesse. Olaf non era presente alla nascita del bambino, e il suo skald islandese Sigvatr Þórðarson divenne il suo padrino. In un battesimo affrettato, Sigvatr chiamò Magnus come il più grande re che conosceva, anche il più grande modello di ruolo di Olaf, Karla Magnus o Carlo Magno. Contro le probabilità, Magnus ha continuato a crescere forte e sano, e divenne di vitale importanza per Olaf come suo unico figlio.
Olaf fu detronizzato dal re danese Cnut il Grande nel 1028, e andò in esilio con la sua famiglia e la sua corte, incluso il giovane Magnus. Viaggiarono sulle montagne e attraverso Eidskog durante l’inverno, entrarono nel Värmland e ricevettero rifugio da un capo di nome Sigtrygg a Närke. Dopo alcuni mesi, partirono da Närke, e a marzo si diressero verso est verso Sigtuna, dove il re svedese Anund Jacob aveva lasciato loro una nave. Il gruppo navigò poi attraverso il Mar Baltico e nel Golfo di Finlandia, approdando infine nella Rus’ di Kiev (Garðaríki). Hanno fatto la loro prima tappa a Staraya Ladoga (Aldeigjuborg) per organizzare l’ulteriore viaggio. Da lì viaggiarono verso sud fino a Novgorod (Holmgard), dove Olaf chiese aiuto al Gran principe Yaroslav il Saggio. Yaroslav, tuttavia, non voleva essere direttamente coinvolto nelle lotte di potere scandinave e rifiutò di aiutare. Dopo qualche tempo, all’inizio del 1030, Olaf apprese che il conte di Lade Håkon Eiriksson, reggente di Cnut in Norvegia, era scomparso in mare, e radunò i suoi uomini per fare un rapido ritorno in Norvegia. Magnus fu lasciato per essere favorito da Yaroslav e sua moglie Ingegerd.
All’inizio del 1031, un gruppo comprendente lo zio di Magnus, Harald Sigurdsson (in seguito anche re e poi conosciuto come Harald Hardrada) arrivò per riferire la notizia della morte di suo padre nella battaglia di Stiklestad. Per i prossimi anni, Magnus è stato educato in russo antico e alcuni greci ed è stato addestrato come un guerriero. Nel 1030, Cnut nominò la sua prima moglie Ælfgifu e il loro figlio Svein come reggenti, ma i norvegesi trovarono il loro dominio oppressivo e, al momento della morte di Cnut nel 1035, erano stati cacciati e Magnus fu stabilito come re. Einar Thambarskelfir e Kalf Arnesson, che avevano entrambi cercato di essere nominati reggenti sotto Cnut dopo la morte di Olaf nel 1030, erano andati insieme a Kievan Rus ‘ per riportare il ragazzo a governare come re di Norvegia. Dopo aver ricevuto l’approvazione di Ingegerd, tornarono con Magnus a Sigtuna all’inizio del 1035, e ricevettero il sostegno del re svedese, fratello della matrigna di Magnus, Astrid. Astrid divenne immediatamente un importante sostenitore di Magnus, e un esercito fu riunito in Svezia, guidato da Einar e Kalf, per mettere Magnus sul trono norvegese.