Согласно древнерусским летописям, Святослав был единственным сыном киевского князя Игоря и княгини Ольги. Год его рождения точно не известен.

Первое упоминание Святослава в синхронном историческом документе содержится в русско-византийском договоре князя Игоря от 944 года.

Княгиня Ольга крестилась в 955—957 годах и пыталась обратить в христианство и сына. Но Святослав до конца оставался язычником, объясняя, что христианин не будет пользоваться авторитетом у дружины.

О первых самостоятельных шагах Святослава «Повесть временных лет» сообщает с 964 года.

Когда Святослав вырос и возмужал, стал он собирать много воинов храбрых, и быстрым был, словно пардус, и много воевал. В походах же не возил за собою ни возов, ни котлов, не варил мяса, но, тонко нарезав конину, или зверину, или говядину и зажарив на углях, так ел; не имел он шатра, но спал, постилая потник с седлом в головах, — такими же были и все остальные его воины. И посылал в иные земли [посланников, как правило, перед объявлением войны] со словами: «Иду на вы!

В «Повести временных лет» отмечено, что в 964 году Святослав «пошёл на Оку реку и на Волгу, и встретил вятичей».

В лето 6473 (965) пошёл Святослав на хазар. Услышав же, хазары вышли навстречу ему со своим князем каганом и сошлись биться, и в битве одолел Святослав хазар, и град их и Белую Вежу взял. И победил ясов и касогов.

Современник событий Ибн-Хаукаль относит поход к чуть более позднему времени и сообщает также о войне с Волжской Булгарией.

По одной версии, Святослав вначале взял Саркел на Дону (в 965 году), затем вторым походом в 968/969 году покорил Итиль — хазарскую столицу в устье Волги, и Семендер — второй крупный хазарский город, находившийся на побережье Каспийского моря.

Святослав не только сокрушил Хазарский каганат, но и пытался закрепить завоёванные территории за собой. На месте Саркела появилось славянское поселение Белая Вежа. Возможно, тогда же под власть Киева перешла Тмутаракань.

В 967 году между Византией и Болгарским царством разгорелся конфликт, причину которого источники излагают по-разному. В 967/968 году византийский император Никифор Фока отправил к Святославу посольство. Главе посольства Калокиру было передано 15 кентинариев золота (примерно 455 кг), чтобы направить русов в набег на Болгарию. Согласно одной из версий, Византия хотела сокрушить Болгарское царство чужими руками, а заодно ослабить Киевскую Русь, которая после присоединения Хазарии могла обратить свой взгляд на крымские владения империи. По другой версии, цель Византии заключалась лишь в обуздании агрессии болгарского царя чужими руками, что было стандартной практикой византийской внешней политики.

В 968 году Святослав вторгся в Болгарию, разбил болгар в битве под Доростолом, взял множество городов и обосновался в устье Дуная, в Переяславце.

К 968—969 годам относится нападение на Киев печенегов. Святослав с конной дружиной возвратился на защиту столицы и отогнал печенегов в степь. Историки А. П. Новосельцев и Т. М. Калинина предполагают, что нападению кочевников способствовали хазары (хотя есть причины полагать что Византии это было не менее выгодно), а Святослав в ответ организовал второй поход против них, в ходе которого и был захвачен Итиль, а Хазария окончательно разгромлена.

Во время пребывания князя в Киеве скончалась его мать, княгиня Ольга, фактически правившая Русью в отсутствие сына. Святослав по-новому устроил управление государством: посадил сына Ярополка на киевское княжение, Олега — на древлянское, Владимира — на новгородское. После этого, осенью 969 года киевский князь снова пошёл на Болгарию с войском.

Не любо мне сидеть в Киеве, хочу жить в Переяславце на Дунае — ибо там середина земли моей, туда стекаются все блага: из Греческой земли золото, паволоки, вина, различные плоды; из Чехии и из Венгрии серебро и кони; из Руси же меха и воск, мёд и рабы.

Византийские источники скупо описывают войну Святослава с болгарами. Его войско на ладьях подошло к болгарскому Доростолу на Дунае и после сражения захватило его. Позднее была захвачена и столица Болгарского царства, Преслав Великий, причем царь Борис попал в плен к Святославу. После падения столицы вся страна быстро попала под контроль Святослава.

Весной 970 года Святослав в союзе с болгарами, печенегами и венграми напал на владения Византии во Фракии. Численность союзников византийский историк Лев Диакон исчислял в более чем 30 000 воинов, в то время как византийский полководец Варда Склир имел под рукой от 10 до 12 тысяч солдат. Варда Склир избегал сражения в открытом поле, сохраняя силы в крепостях. Войско Святослава дошло до Аркадиополя (в 120 км от Константинополя), где и произошло генеральное сражение. По сообщениям византийских источников, были окружены и перебиты все печенеги, а затем были разгромлены основные силы Святослава. Древнерусская летопись излагает события иначе: по сведениям летописца, Святослав одержал победу, вплотную подошёл к Царьграду, но отступил, лишь взяв большую дань, в том числе и на погибших воинов. По версии Сюзюмова М. Я. и Сахарова А. Н., сражение, о котором рассказывает русская летопись и в котором русские одержали победу, было отдельным от битвы под Аркадиополем. Оно также произошло в 970 году, византийским войском командовал не упоминаемый при Аркадиополе патрикий Пётр, а противостояла ему та часть русского войска, которая не сражалась вместе с союзниками под Аркадиополем.

В апреле Цимисхий во главе отряда из 5000 лучших воинов перешел Балканские горы, в то время как основная часть византийской армии под командованием евнуха Василия Лакапина последовала за ними. Передовой отряд двигался так быстро, что русы были захвачены врасплох, и о походе императора они узнали, только когда он был уже почти у стен Преслава. В это время в городе находилось около 8000 русских, но в бой с авангардом Цимисхия они не вступили, укрывшись за стенами города.

Вскоре прибыла основная часть византийской армии и начался штурм. Тринадцатого апреля византийцы ворвались в город, но многие русские закрылись внутри дворца царя Симеона. Византийцы подожгли дворец и множество русов погибло в огне. Пожары нанесли городу большой ущерб, уничтожив в частности прославленную Золотую Церковь. Вскоре к городу подошел Святослав с основными силами, надеясь вернуть столицу, однако вблизи г. Доростола на его пути встала армия Цимисхия. Русские укрылись в крепости, началась трёхмесячная осада. Потери русов росли, и Святослав стал искать мира. Он отправил к Цимисхию посланника с сообщением о готовности покинуть Болгарию. Стремясь завершить дело, Иоанн принял предложение. Был также возобновлен старый торговый договор, позволявший русским привозить свои товары в Константинополь. На обратном пути в Киев множество русских пали жертвами печенегов, включая самого Святослава.

Византийцы освободили Бориса II, однако к власти его не вернули. Столица Болгарии была переименована в Иоаннополис в честь императора, и там был поставлен византийский наместник. Вся восточная Болгария была присоединена к Византии, независимость сохранили только западные области. Борис II был публично лишен царской короны и регалий, которые поместили на алтарь Святой Софии. Бывший царь остался жить в Константинополе, получив от императора сан магистра.

По заключении мира Святослав благополучно достиг устья Днепра и на ладьях отправился к порогам. Воевода Свенельд говорил ему: «Обойди, князь, пороги на конях, ибо стоят у порогов печенеги». Попытка Святослава в 971 году подняться по Днепру не удалась, пришлось ему зимовать в устье Днепра, а весной 972 года он решил повторить попытку. Однако печенеги по-прежнему сторожили русов. В схватке Святослав погиб:

Когда наступила весна, отправился Святослав к порогам. И напал на него Куря, князь печенежский, и убили Святослава, и взяли голову его, и сделали чашу из черепа, оковав его, и пили из него. Свенельд же пришёл в Киев к Ярополку.

Византийцы возможно подкупили печенегов, чтобы те убили Святослава.

В какой-нибудь альтернативной истории Святослав бы мог удержать Болгарию за собой, победить Византийцев. И была бы тогда Россия по размеру гораздо больше.