Magnus byl nemanželským synem krále Olafa Haraldssona (později sv. Olafa), jeho anglické konkubíny Alfhildy, původně otrokyně Olafovy královny Astrid Olofsdotterové. Dítě, které se narodilo předčasně, bylo prvních pár minut slabé a nemohlo dýchat a pravděpodobně se neočekávalo, že přežije. Olaf nebyl u narození dítěte přítomen a jeho kmotrem se stal Islanďan skald Sigvatr Þórðarson. Při ukvapeném křtu Sigvatr pojmenoval Magnuse po největším králi, o kterém věděl, také olafův největší vzor Karla Magnuse nebo Karla Velikého. Proti přesile, Magnus pokračoval růst silný a zdravý, a stal se životně důležitý pro Olafa jako svého jediného syna.
Olaf byl sesazen dánským králem Cnutem Velikým v roce 1028 a odešel do exilu se svou rodinou a dvorem, včetně mladého Magnuse. Během zimy cestovali přes hory a přes Eidskog, vstoupili do Värmlandu a v Närke jim poskytl útočiště náčelník Sigtrygg. Po několika měsících opustili Närke a v březnu se vydali na východ směrem k Sigtuně, kde jim švédský král Anund Jacob nechal loď. Strana poté proplula Baltským mořem a do Finského zálivu, nakonec přistála v Kyjevské Rusi (Garðaríki). Svou první zastávku uskutečnili ve Staraya Ladoga (Aldeigjuborg), aby zorganizovali další cestu. Odtud putovali na jih do Novgorodu (Holmgard), kde Olaf hledal pomoc u velkoknížete Jaroslava Moudrého. Jaroslav se však nechtěl přímo zapojit do skandinávských mocenských bojů a odmítl pomoci. Po nějaké době, počátkem roku 1030, se Olaf dozvěděl, že hrabě z Lade Håkon Eiriksson, Regent Cnutu v Norsku, zmizel na moři a shromáždil své muže, aby se rychle vrátili do Norska. Magnus byl ponechán na péči Jaroslava a jeho manželky Ingegerd.
na počátku roku 1031 přišla skupina včetně Magnusova strýce Haralda Sigurdssona (později také Krále a poté známého jako Harald Hardrada), aby ohlásila zprávu o smrti svého otce v bitvě u Stiklestadu. V příštích několika letech byl Magnus vzděláván ve staré ruštině a řečtině a byl vycvičen jako válečník. V roce 1030 jmenoval Cnut svou první manželku Ælfgifu a jejich syna Sveina regenty, ale Norové považovali jejich vládu za utlačující a v době Cnutovy smrti v roce 1035 byli vyhnáni a Magnus byl ustanoven králem. Einar Thambarskelfir a Kalf Arnesson, kteří se oba snažili být jmenováni regenty pod Cnut po Olafově smrti v roce 1030, odešli společně do Kyjevské Rusi, aby přivedli chlapce zpět, aby vládl jako norský král. Po obdržení souhlasu Ingegerda se počátkem roku 1035 vrátili s Magnusem do Sigtuny a získali podporu od švédského krále, bratra Magnusovy nevlastní matky Astrid. Astrid se okamžitě stala důležitým zastáncem Magnuse a ve Švédsku se shromáždila armáda v čele s Einarem a Kalfem, aby umístila Magnuse na norský trůn.