Magnus adalah putra tidak sah Olav II dari Norwegia (kemudian St. Olaf) dan gundiknya asal Inggris bernama Alfhild,[1] yang aslinya adalah seorang budak (thrall) ratu Olaf, Astrid Olavsdatter.[2] Magnus kemudian melarikan diri bersama ibundanya ketika ayahandanya turun takhta pada 1028. Ia kembali ke Norwegia pada 1035 dan dimahkotai sebagai raja pada usia sebelas tahun. Pada 1042, ia juga dimahkotai sebagai raja Denmark. Magnus bertakhta di kedua negara tersebut hingga 1047, ketika ia meninggal dengan sebab yang tidak jelas. Setelah kematiannya, kerajaannya dibagi antara Harald III di Norwegia dan Svend Estridsen di Denmark.