Magnus var en illegitim son till kung Olaf Haraldsson (senare St.Olaf), av sin engelska bihustru Alfhild, ursprungligen en slav (träl) av Olafs drottning Astrid Olofsdotter. Född för tidigt var barnet svagt och kunde inte andas de första minuterna, och han förväntades förmodligen inte överleva. Olaf var inte närvarande vid barnets födelse, och hans Isländska skald Sigvatr Bisexarson blev hans gudfar. I ett hastigt dop namngav Sigvatr Magnus efter den största kungen han kände till, även Olafs största förebild, Karla Magnus, eller Karl den store. Mot oddsen fortsatte Magnus att växa sig stark och frisk, och han blev av avgörande betydelse för Olaf som sin enda son.
Olaf avskedades av den danska kungen Cnut den store 1028, och han gick i exil med sin familj och domstol, inklusive den unga Magnus. De reste över bergen och genom Eidskog under vintern, gick in i v Tubirmland, och fick skydd av en hövding som heter Sigtrygg i n Tubirke. Efter några månader avgick de N. A. R. och i mars gick de österut mot Sigtuna, där den svenska kungen Anund Jacob hade lämnat dem ett fartyg. Partiet seglade därefter genom Östersjön och in i Finska viken och landade så småningom i Kievan Rus ’ (gar Tucilar Tsukki). De gjorde sitt första stopp vid Staraya Ladoga (Aldeigjuborg) för att organisera den fortsatta resan. Därifrån reste de söderut till Novgorod (Holmgard), där Olaf sökte hjälp från Storprins Yaroslav den Vise. Yaroslav ville dock inte bli direkt involverad i de skandinaviska maktkampen och vägrade att hjälpa. Efter en tid, i början av 1030, fick Olaf veta att jarlen av Lade h Jacobkon Eiriksson, Cnuts regent i Norge, hade försvunnit till sjöss och samlat sina män för att snabbt återvända till Norge. Magnus lämnades att fostras av Yaroslav och hans fru Ingegerd.
i början av 1031 anlände ett parti inklusive Magnus farbror Harald Sigurdsson (senare också att vara kung och då känd som Harald Hardrada) för att rapportera nyheten om sin fars död vid Slaget vid Stiklestad. Under de närmaste åren utbildades Magnus i gammal ryska och några grekiska och utbildades som krigare. År 1030 utsåg Cnut sin första fru Ubillfgifu och deras son Svein till regenter, men norrmännen fann sitt styre förtryckande och vid tidpunkten för Cnuts död 1035 hade de drivits ut och Magnus etablerades som kung. Einar Thambarskelfir och Kalf Arnesson, som båda hade försökt utnämnas till regenter under Cnut efter Olafs död 1030, hade gått tillsammans till Kievan Rus för att få pojken tillbaka för att regera som kung av Norge. Efter att ha fått godkännande av Ingegerd återvände de med Magnus till Sigtuna i början av 1035 och fick stöd från den svenska kungen, bror till Magnus styvmor Astrid. Astrid blev omedelbart en viktig anhängare av Magnus, och en här samlades i Sverige, ledd av Einar och Kalf, för att placera Magnus på den norska tronen.