Цимисхий стянул войска со всей Византийской империи. В конце марта 971 года в проливе Босфор прошел смотр флота, имевшего на вооружении так называемый «греческий огонь» — смесь смолы, серы и нефти. Перед византийскими кораблями стояла задача блокировать устье Дуная, чтобы отрезать ладьям русичей путь к отступлению.
Весной 971 года византийский император во главе двухтысячной гвардии «бессмертных» торжественно выступил в поход из Константинополя. В Адрианополе к нему присоединилась огромная армия. 23 апреля император Иоанн Цимисхий после стремительного марша подошел к городу-крепости Доростолу. Первое сражение под его стенами русичи выиграли, уничтожив из засады большой передовой отряд византийских всадников. Но это не остановило императорскую армию, выходившую на равнину перед Доростолом. Однако там византийцев уже поджидали русичи: рать князя окружила крепостные стены плотным строем, прикрывшись червлеными щитами и выставив копья. Иоанн Цимисхий приказал начать общую атаку, но русичи отразили даже таранный удар тяжеловооруженной византийской конницы. Пробить строй пехоты Святослава она не смогла. На этом битва закончилась: византийцы отошли в свой лагерь, русичи — за крепостные стены.
Положение русичей ухудшилось, когда по Дунаю к Доростолу подошел многочисленный неприятельский флот. Чтобы спасти свои ладьи от «греческого огня», воины киевского князя отнесли их на руках под самые крепостные стены и оставили под защитой лучников.
26 апреля 971 года князь Святослав вновь вывел свое войско в поле. Русичи бились врукопашную и простояли на равнине всю ночь, однако византийцы не стали продолжать сражение. Зато через два дня к Доростолу подошли обозы с баллистами и катапультами, метавшими на большие расстояния камни, бревна и глиняные горшки с «греческим огнем». Однако подвезти тяжелые метательные машины близко к крепостным стенам византийцам не удалось: русичи за одну ночь выкопали на их пути широкий и глубокий ров.
Осада затягивалась. И хотя в крепости оставалось мало продовольствия, воины Святослава 19 июня совершили вылазку из крепости (императорская армия как раз отдыхала после обеда) и изрубили множество баллист и катапульт. На следующий день рать князя вновь вышла из стен крепости и в бою нанесла ощутимый урон панцирной коннице катафрактариев. За время осады оборонявшиеся потеряли 15 тысяч человек, а их противник — 15–20 тысяч убитыми в многочисленных схватках под крепостными стенами.
Последняя битва под стенами Доростола произошла 21 июля. Князь Святослав приказал запереть за собой ворота, чтобы никто без его приказа в случае поражения не мог укрыться за крепостными стенами. Удар пешего войска русичей был настолько сильным, что византийская армия попятилась к своему лагерю. В этой критической ситуации император Иоанн Цимисхий сам повел в атаку полк «бессмертных», отборную часть своего войска. Сражение прекратилось неожиданно — началась сильная гроза, поднялся шквальный ветер и полил дождь. Русичи, забросив за спину щиты, по сигналу трубы возвратились в крепость.
На следующий день после демонстрации силы русского войска киевский князь начал переговоры с императором Иоанном Цимисхием. Византийцы были рады такому исходу войны: русичи по своей воле покидали Болгарию и уходили на Русь. Их даже обеспечили продовольствием на обратную дорогу. На каждого из 22 тысяч русских воинов было выдано по две меры зерна.
Условия ухода рати русичей с берегов Дуная были почетными. Но прежде чем князь Святослав оказался в устье Дуная, в кочевья печенегов прибыл полномочный посол византийского императора епископ Феофил. Он хорошо заплатил степным вождям за нападение на возвращавшегося в Киевскую Русь князя Святослава.
Приплыв на ладьях в устье Дуная, войско Святослава разделилось. Конную дружину возглавил варяг Свенельд, и она двинулась по степям и лесам в Киев. Воевода Свенельд убеждал Святослава: «Обойди, князь, пороги на конях, ибо стоят у порогов печенеги». Но гордый Святослав не захотел обходить опасность. Ладьи русичей, имея на борту много раненых и больных, двинулись вверх по Днепру. У днепровских порогов Святослав понял, что ему не прорваться через печенежскую конницу. Князь велел повернуть назад, чтобы перезимовать на островах в Белобережье. Но зимовка оказалась очень тяжелой — люди питались одной рыбой без соли.
Весной 972 года князь вместе с оставшимися в живых воинами вновь двинулся вверх по Днепру. На днепровских порогах Свято-слава уже поджидали печенеги во главе с князем Курей. Подробности последней битвы Святослава Игоревича не известны: у порогов вместе князем погибла вся его дружина.
Вильгельм I Завоеватель — основатель единого Английского королевства