Magnus era un hijo ilegítimo del rey Olaf Haraldsson (más tarde San Olaf), de su concubina inglesa Alfhild, originalmente esclava de la reina de Olaf Astrid Olofsdotter. Nacido prematuramente, el niño estaba débil e incapaz de respirar durante los primeros minutos, y probablemente no se esperaba que sobreviviera. Olaf no estuvo presente en el nacimiento del niño, y su escaldo islandés Sigvatr Þórðarson se convirtió en su padrino. En un bautismo apresurado, Sigvatr nombró a Magnus en honor al rey más grande que conocía, también el mayor modelo a seguir de Olaf, Karla Magnus, o Carlomagno. Contra todo pronóstico, Magnus creció fuerte y sano, y se convirtió en de vital importancia para Olaf como su único hijo.
Olaf fue destronado por el rey danés Canuto el Grande en 1028, y se exilió con su familia y la corte, incluido el joven Magnus. Viajaron por las montañas y a través de Eidskog durante el invierno, entraron en Värmland y recibieron refugio de un cacique llamado Sigtrygg en Närke. Después de unos meses, partieron de Närke, y en marzo se dirigieron hacia el este hacia Sigtuna, donde el rey sueco Anund Jacob les había dejado un barco. A partir de entonces, el grupo navegó a través del Mar Báltico y hacia el Golfo de Finlandia, desembarcando finalmente en la Rus de Kiev (Garðaríki). Hicieron su primera parada en Staraya Ladoga (Aldeigjuborg) para organizar el viaje posterior. Desde allí viajaron hacia el sur a Nóvgorod (Holmgard), donde Olaf buscó la ayuda del Gran Príncipe Yaroslav el Sabio. Yaroslav, sin embargo, no quería involucrarse directamente en las luchas de poder escandinavas, y se negó a ayudar. Después de algún tiempo, a principios de 1030, Olaf se enteró de que el conde de Lade Håkon Eiriksson, regente de Canuto en Noruega, había desaparecido en el mar, y reunió a sus hombres para hacer un rápido regreso a Noruega. Magnus fue acogido por Yaroslav y su esposa Ingegerd.
A principios de 1031, un grupo que incluía al tío de Magnus, Harald Sigurdsson (más tarde también rey y entonces conocido como Harald Hardrada) llegó para informar de la noticia de la muerte de su padre en la Batalla de Stiklestad. Durante los años siguientes, Magnus fue educado en ruso Antiguo y algo de griego, y fue entrenado como guerrero. En 1030, Canuto nombró a su primera esposa Ælfgifu y a su hijo Svein como regentes, pero los noruegos encontraron que su gobierno era opresivo y, en el momento de la muerte de Canuto en 1035, habían sido expulsados y Magnus se estableció como rey. Einar Thambarskelfir y Kalf Arnesson, que habían buscado ser nombrados regentes bajo Cnut después de la muerte de Olaf en 1030, habían ido juntos a la Rus de Kiev para traer al niño de vuelta a gobernar como Rey de Noruega. Después de recibir la aprobación de Ingegerd, regresaron con Magnus a Sigtuna a principios de 1035, y recibieron el respaldo del rey sueco, hermano de la madrastra de Magnus, Astrid. Astrid se convirtió inmediatamente en un importante partidario de Magnus, y un ejército se reunió en Suecia, encabezado por Einar y Kalf, para colocar a Magnus en el trono noruego.