Согласно «Повести временных лет», Ольга была родом из города Пскова. «Житие святой великой княгини Ольги» уточняет, что родилась она в деревне Выбуты Псковской земли. Имена родителей Ольги история не сохранила, но известно, что были они незнатными и пришлыми — варягами. Варяжское происхождение подтверждает и ее скандинавское имя — Хельга. Некоторые источники утверждают, что Ольга была дочерью Вещего Олега, который стал править Киевской Русью как опекун малолетнего Игоря, сына Рюрика. Выдвигалась версия и о болгарских корнях княгини Ольги: летописное название Плесков переводилось не как Псков, а как Плиска, столица болгар в то время. Названия городов и правда совпадают в древнеславянской транскрипции. Есть предания, в которых говорится о происхождении Ольги из летописного прикарпатского местечка Плеснеска. По другим сведениям, она была из знатного северного рода и являлась внучкой легендарного славянского князя Гостомысла. Встречается сообщение о том, что до замужества она носила имя Прекраса, а Ольгой была названа в честь киевского князя Олега, воспитавшего мужа Ольги Игоря и устроившего их брак.
О встрече Ольги и Игоря тоже рассказывает романтическая легенда. Однажды юному Игорю пришлось охотиться возле Пскова. Он оказался на берегу реки и никак не мог переправиться на другую сторону, потому что у него не было лодки. И вдруг князь увидел на реке лодку, которой управлял юноша. Игорь подозвал его. Оказавшись в лодке, князь вдруг осознал, что перевозчик вовсе не юноша, а прекрасная девушка в мужском костюме — Ольга. Когда же Игорь вернулся в Киев и пришло ему время жениться, князь вспомнил красоту псковской девушки и взял ее в жены.
После смерти князя Олега, приблизительно в 912 году, Игорь вступает на киевский престол. В 914 году, покорив уличей и усмирив племя древлян, он заставил их выплачивать дань больше, чем прежде. В 915 году Свенельд, воевода князя, двинулся на юг и после трехлетней осады взял город Пересечен, после чего получил древлянскую дань. В 920 году Игорь вновь воевал с печенегами, но результаты этой войны неизвестны. Слава доблестного князя Олега не давала покоя Игорю, и он совершил два похода на Византию. Первый поход на греков в 941 году окончился полной неудачей. Император Роман был предупрежден болгарами и встретил войско Игоря во всеоружии — он выслал свой флот навстречу судам русичей и сжег их. Спасаясь от разгрома, остатки дружины высадились на берег Малой Азии и стали грабить окрестные поселения, но византийцы выдворили их и оттуда. Игорь с уцелевшей дружиной бесславно вернулся в Киев. Но здесь его ждала радостная весть — у него появился долгожданный наследник: княгиня Ольга родила сына Святослава.
С возросшим энтузиазмом Игорь стал готовиться к новому походу на Царьград, который состоялся в 944 году. Он собрал словен, кривичей, тивирцев, росов, полян, нанял печенегов, взял у них заложников и пошел с ладьями и конницей на греков. Император Византии был опять предупрежден болгарами, но не стал воевать, а послал к Игорю царедворцев с мольбой: «Не ходи, но возьми дань, какую брал Олег, прибавлю и еще к той дани». Император Роман и князь Игорь заключили новый договор (945) между Византией и Русью, установив «мир вечный до тех пор, пока солнце сияет и весь мир стоит».
Поиздержавшись в походе на греков, Игорь решил поправить дела, собрав дань с древлян. Легко сделав это, на пути домой он передумал и решил добыть еще немного. Дружине он сказал: «Идите с данью домой, а я возвращусь и похожу еще». И с малой дружиной он вернулся в древлянскую землю. Жители Искоростеня выслали к нему делегатов, которые просили пощадить их город, но князь Игорь не послушал их. Древляне же рассудили так: «Если повадится волк к овцам, то вынесет все стадо, пока не убьют его…» Они перебили всех дружинников и захватили Игоря. Жадный князь был казнен — его привязали за ноги к стволам согнутых молодых деревьев и затем отпустили их: Игоря разорвало надвое.
Летописи подробно повествуют о мести Ольги за смерть любимого мужа. После убийства Игоря к его вдове, боясь мести, древляне прислали сватов — звать ее замуж за своего князя Мала. Княгиня сделала вид, что согласна, и сказала им: «Любезна мне речь ваша — мужа моего мне уже не вернуть. Но хочу воздать вам завтра честь перед людьми своими. Нынче же идите к своей ладье и ложитесь в нее, а утром я пошлю за вами, а вы отвечайте: “Не едем ни на конях, ни на возах, ни пеши не пойдем, но понесите нас в ладье!” И вознесут вас в ладье».
А сама тем временем приказала выкопать глубокую и широкую яму на теремном дворе. На следующее утро слуги пришли за гостями: «Зовет вас Ольга для чести великой». Они же ответили: «Не едем ни на конях, ни на возах и пеши не идем, но понесите нас в ладье». И ответили киевляне: «Нам неволя; князь наш убит, а княгиня наша хочет за вашего князя», — и понесли их в ладье, и как несли, так и сбросили их вместе с ладьей в яму. Склонившись к яме, спросила их Ольга: «Хороша ли вам честь?» Они же ответили: «Горше Игоревой смерти». И велела Ольга засыпать их живыми.