Олаф родился в 995 году. Он был сыном мелкого конунга Харальда Гренландца и праправнуком Харальда Прекрасноволосого; Харальд Суровый был его сводным братом.
В 1009—1013 гг. сражался в Англии (сначала на стороне датчан, а потом на стороне англо-саксов).
В 1013 году в Нормандии был обращен в христианство, крещён в Руане и в этом году поступил на службу к английскому королю в изгнании Этельреду. Он помог английскому королю вернуться в Англию и там сражался на его стороне против датчан. В 1015 году Олаф вместе с епископом Зигфридом выехал в Норвегию, где бонды и провинциальные правители провозгласили его королём страны.
В 1017 году в Швецию был отправлен послом Бьёрн Окольничий с предложениями о мире, причём одним из способов урегулирования конфликта была женитьба Олафа II на дочери Олафа Шётконунга Ингегерде, и решение об этом браке было принято на тинге в Упсале. Для шведов этот брак был выгоден как способ установить мир на границе, и они убедили Олафа Шётконунга дать клятву в том, что он выдаст Ингегерду за Олафа II. Причём известно, что его дочь хотела этого брака. Свадьба должна была состояться осенью на границе двух государств на берегу реки Эльв. В соответствии с достигнутыми соглашениями осенью 1018 года Олаф II прибыл на границу для свидания с невестой и её отцом, но их там не оказалось. Отправленные в Швецию гонцы привезли неутешительное известие: еще летом к Олафу Шётконунгу прибыли сваты от новгородского «конунга Ярицлейва», шведский король выдал свою дочь за князя Ярослава (Мудрого), который княжил тогда в Новгороде, а Олаф II женился на её сводной сестре Астрид. Согласно «Пряди об Эймунде», во время пребывания Олафа в Новгороде Ингегерда «имела с ним тайную любовную связь».
Проводимые Олафом более решительно и последовательно, чем его предшественниками, борьба с язычеством, сокращение традиционных «свобод» с целью усиления королевской власти, изменения в системе кормлений и сбора податей и прочее привели к разрыву между ним и большой частью старой знати, а также присоединившимися к знати бондами. Противники Олафа внутри страны встали на сторону претендовавшего на власть в Норвегии короля Англии и Дании Кнута Великого.
В 1027 году в союзе со Швецией Олаф напал на Данию, но потерпел поражение и в 1028 году был вынужден покинуть Норвегию и бежать в Швецию, и затем дальше на Русь, в Новгород к Ингегерде. Бежал он туда вместе с малолетним сыном Магнусом, оставив в Швеции жену Астрид. В Новгороде Ингегерда настояла, чтобы Магнус остался у Ярослава. В это время норвежский престол занял Кнуд I, поставивший «наместником» своего сына от наложницы Альвивы Свейна.
В 1030 году по зову своих сторонников вернулся в Норвегию, и попытался с шведской помощью вернуть себе престол, но в июле того же года (29-го либо 31-го числа) при Стикластадире был убит в битве с дружиной норвежской родовой знати и бондов.
У Олафа был один сын — Магнус Добрый и одна дочь — Ульфильда.
Однако С. С. Алексашин, опираясь на данные саг о «тайной любви» между Ингегердой и Олафом и пытаясь объяснить данные генетических исследований современных Рюриковичей, показавших расхождение гаплогрупп у потомков Мономаха («скандинавская» гаплогруппа N1c1) и Олега Святославича («славянская» — R1a), выдвинул гипотезу о внебрачных детях Олафа. Он предположил, что фактическим сыном Олафа от Ингегерды был русский князь Всеволод Ярославич, отец Владимира Мономаха. При этом гипотеза полностью игнорирует вероятное скандинавское происхождение Рюрика и возможную неверность жены Олега к славянину, что привело бы к аналогичному расхождению гаплогрупп.
Прославление Олафа в лике святых состоялось в Норвегии 3 августа 1031 году (память 29 июля). В 1164 году папой Александром III был причислен к лику святых и стал почитаться как покровитель Норвегии.
Святой Олаф является последним по времени западным святым (до Великой схизмы 1054 года), почитаемым также и на христианском Востоке (Святой благоверный Олаф II Харальдссон, король Норвегии креститель и просветитель норвежцев).
В России во имя святого Олафа были освящены храмы в Новгороде (где он жил несколько лет) и Старой Ладоге, где он проездом гостил у посадника Рёгнвальда Ульвсона, родственника своей бывшей невесты Ингигерды, так как между Олафом и Ингигердой была «самая большая дружба» или, как сказано, в «Пряди об Эймунде» — Ингигерда «имела с ним тайную любовную связь».