Magnus var en uægte søn af kong Olaf Haraldsson (senere St. Olaf), af sin engelske Medhustru Alfhild, oprindeligt en slave (Træl) af Olafs dronning Astrid Olofsdotter. Født for tidligt var barnet svagt og ude af stand til at trække vejret i de første par minutter, og han forventedes sandsynligvis ikke at overleve. Olaf var ikke til stede ved barnets fødsel, og hans Islandske skald Sigvatr L. A. blev hans gudfar. I en forhastet dåb navngav Sigvatr Magnus efter den største konge, han kendte til, også Olafs største rollemodel, Karla Magnus, eller Karl den store. Mod alle odds fortsatte Magnus med at vokse sig stærk og sund, og han blev af vital betydning for Olaf som sin eneste søn.
Olaf blev detroneret af den danske konge Knud Den Store i 1028, og han gik i eksil med sin familie og Hof, herunder den unge Magnus. De rejste over bjergene og gennem Eidskog i løbet af vinteren, indtastet V Kurrmland, og fik ly af en høvding kaldet Sigtrygg i n Kurrrke. Efter nogle få måneder drog de af sted i N. A., og i Marts drog de mod øst mod Sigtuna, hvor den svenske kong Anund Jakob havde efterladt dem et skib. Partiet sejlede derefter gennem Østersøen og ind i Den Finske Bugt, til sidst lander i Kievan Rus ‘(Gar Karrusar). De gjorde deres første stop ved Staraya Ladoga (Aldeigjuborg) for at organisere den videre rejse. Derfra rejste de sydpå til Novgorod (Holmgard), hvor Olaf søgte hjælp hos storfyrsten Yaroslav den vise. Yaroslav ønskede imidlertid ikke at blive direkte involveret i de skandinaviske magtkampe og nægtede at hjælpe. Efter nogen tid, i begyndelsen af 1030, fik Olaf at vide, at jarlen af Lade h Lyrikon Eiriksson, Knuts regent i Norge, var forsvundet til søs og samlede sine mænd for hurtigt at vende tilbage til Norge. Magnus blev overladt til at blive fremmet af Yaroslav og hans kone Ingegerd.
i begyndelsen af 1031 ankom et parti inklusive Magnus onkel Harald Sigurdsson (senere også for at være Konge og derefter kendt som Harald Hardrada) for at rapportere nyheden om sin fars død i Slaget ved Stiklestad. I de næste par år blev Magnus uddannet i gammel russisk og nogle græske og blev uddannet som kriger. I 1030 udnævnte Cnut sin første kone, Kurslfgifu, og deres søn Svein som regenter, men nordmændene fandt deres styre undertrykkende, og da Knud døde i 1035, var de blevet fordrevet, og Magnus blev etableret som konge. Einar Thambarskelfir og Kalf Arnesson, der begge havde søgt at blive udnævnt til regenter under Cnut efter Olafs død i 1030, var gået sammen til Kievan Rus’ for at bringe drengen tilbage til at herske som konge af Norge. Efter at have modtaget ingegerds godkendelse vendte de tilbage med Magnus til Sigtuna i begyndelsen af 1035 og modtog opbakning fra den svenske konge, bror til Magnus stedmor Astrid. Astrid blev straks en vigtig tilhænger af Magnus, og en hær blev samlet i Sverige, ledet af Einar og Kalf, for at placere Magnus på den norske trone.