Воеводу Сфенкела не смутила численность подступившего к городу врага. Он смело вывел из крепости русские и болгарские дружины и дал сражение византийцам. Только яростные атаки тяжеловооруженных «бессмертных» на левый фланг противника заставили Сфенкела увести своих воинов обратно в крепость. Началась осада Преславы.
Византийцы попытались с ходу взять крепость, но, осыпаемые градом стрел, были вынуждены отойти. На следующий день прибыли осадные машины проедра Василия. Камнеметные машины обрушили на стены болгарской столицы каменные глыбы, горшки с «греческим огнем». Защитники несли тяжелые потери, но продолжали держаться, отбивая штурмы. Все же силы сторон оказались явно неравными.
Через два дня византийцы ворвались в пылающий город. Последние схватки разгорелись у царского дворца. Вырваться из города удалось лишь дружине воеводы Свенельда и части болгарских дружинников. Они отправились в Доростол, где пребывал князь Святослав. Царь Борис и его семья попали в плен к победителям.
После взятия Цимисхием болгарской столицы, где в жестокой сече погиб большой отряд русичей, обстановка на театре военных действий изменилась не в пользу князя Святослава. Он, застигнутый врасплох, оставался в чужой стране без союзников и почти без конницы. До сих пор Святослав нападал первым; теперь же должен был ждать, пока на него нападут, искать спасения в обороне. Такой способ ведения войны был не по нем.
17 апреля император Иоанн Цимисхий быстрыми маршами двинулся из Преславы к Доростолу. Города между Гимейскими горами и рекой Дунай, покинутые русскими гарнизонами, сдавались без боя. Болгарские феодалы вместе со своими дружинами переходили на сторону императора, увеличивая и без того огромное византийское войско.
23 апреля византийцы подошли к городу-крепости Доростолу. Впереди шли сильные конные дозоры, которые внимательно осматривали местность — нет ли где засады. Однако первую схватку с защитниками Доростола византийцы проиграли. На малоазийских всадников под начальством Феодора Мисфианина русичи напали из засады и в ожесточенной схватке перебили всех.
Однако это не остановило императора Цимисхия — его войско, не нарушая строя, готовое к любым неожиданностям, медленно подошло к Доростолу. Перед городом расстилалась большая равнина, удобная для битвы, местами пересеченная речушками и ручьями. Виднелся полноводный по весне Дунай. Издали стены крепости казались невысокими и совсем не грозными. Но византийцы знали, что их толщина достигала двенадцати локтей, а до зубчатого гребня могли дотянуться только самые длинные штурмовые лестницы. Двое крепостных ворот выходили прямо в поле, их защищали массивные каменные башни.
Когда византийское войско приблизилось к Доростолу, русские дружины уже ожидали его, совсем готовые к битве. Русичи плотно сомкнули свои червленые щиты, выставили вперед копья и стояли, ощетинившись, грозной стеной. Князь Святослав знал, что главной ударной силой неприятеля была тяжеловооруженная, панцирная конница — катафракты. Им и противопоставил он плотный ряд своих пеших воинов, вооруженных не хуже византийцев.
Император Иоанн Цимисхий приказал трубить общую атаку. Боевой порядок его войск был следующим: в центре стояла фаланга пехоты, на флангах конница в железных латах. Впереди находилась легкая пехота — стрелки из лука и пращники. Видя, что неприятель пошел вперед, русские дружины тоже продвинулись вперед и двенадцать раз отбивали удары византийцев. Победа колебалась: ни та ни другая сторона не брала верх.
Под вечер Цимисхий решил нанести решительный удар по войску Святослава. Он собрал воедино всю свою панцирную конницу и бросил ее в атаку. Однако с большими потерями ей пришлось возвратиться назад — пробить строй русской пехоты она не смогла. После этого киевский князь отвел своих воинов за крепостные стены — наступала темнота и сражение заканчивалось, так и не выявив победителей.
Византийский историк писал: «Битва долго оставалась в совершенном равновесии. Русы сражались храбро и отчаянно. Они давно приобрели славу победителей над всеми соседственными народами и почитали величайшим несчастием быть побежденными и лишиться этой славы. Греки тоже страшились быть побежденными. Они до сих пор побеждали всех своих неприятелей, а теперь настал день, когда они могли лишиться приобретенной славы… Русы, испуская яростные крики, бросились на греков. Уже пало весьма много воинов с обеих сторон, а победа все еще оставалась сомнительной».
Началась осада крепости Доростол. Утром 24 апреля император приказал строить укрепленный лагерь и готовить осадные машины, которые подвозились от Преславы. Византийцы выкопали глубокий ров и насыпали высокий вал, в котором были устроены ворота.
По данным византийского хрониста Льва Диакона, силы сторон во время осады Доростольской крепости были следующими: у русичей — 37–40 тысяч воинов, у византийцев (греков) — 45–60 тысяч. При этом следует учитывать то обстоятельство, что войско князя Святослава постоянно сокращалось, а к императору Цимисхию постоянно подходили свежие подкрепления и в достаточном количестве поставлялся провиант и фураж для коней.
По данным того же Льва Диакона, за время трехмесячной осады Доростола — с 24 апреля 971 года до 22 июля того же года русичи потеряли погибшими и умершими от болезней 15 тысяч человек, а их противник — 15–20 тысяч человек.
Хроника боевых действий осадных месяцев была полна событий. На второй день катафракты приблизились к городу, вызывая на бой русскую конницу, которая численно значительно уступала им. Ворота крепости открылись и русские всадники выехали в поле. Катафракты атаковали их, но успеха не имели. После жаркой схватки стороны разъехались.
Тот же день принес осажденным большую беду. По Дунаю к Доростолу поднялся многочисленный византийский флот. Однако русичи смогли спасти свои ладьи от «греческого огня»: они на руках перенесли свои легкие мореходные суда под самые крепостные стены и сложили их там под защиту лучников. Византийцы не решались приблизиться к крепости по речному берегу.
На третий день осады, 26 апреля, вновь под стенами Доростола произошел сильный бой. Князь Святослав вывел свое войско в поле и навязал неприятелю битву, которая вновь не выявила победителей. Русичи вновь сражались в пешем строю. Они вечером даже не ушли в крепость, а простояли на равнине всю ночь до самого утра. Утром же катафракты так и не решились атаковать плотные ряды противника.
Только к полудню 27 апреля, когда император Иоанн Цимисхий выступил из укрепленного лагеря со всеми своими силами, русские воины неторопливо свернули свой боевой строй и ушли в Доростол, оставив наступавшим византийцам только догорающие костры. Те не стали приближаться к крепостным стенам на дальность полета стрелы и возвратились в свой лагерь. На всякий случай Цимисхий приказал выставлять днем и ночью сильные дозоры, опасаясь внезапного нападения со стороны защитников Доростола.
Лев Диакон отмечает высокий боевой дух войска князя Святослава на протяжении всей осады Доростольской крепости. Он приводит в своем писании пересказ одной из пламенных речей древнерусского полководца, с которой он обращался к воинам перед битвой: «…Проникнемся мужеством, которое завещали нам предки, вспомним о том, что мощь русов до сих пор была несокрушимой, и будем храбро сражаться за свою жизнь! Не пристало нам возвращаться на родину, спасаясь бегством. Мы должны либо победить и остаться в живых, либо умереть со славой, совершив подвиги, достойные доблестных мужей».
Схожая по содержанию и эмоциональности речь князя Святослава Игоревича, относящаяся к одному из сражений 971 года, приводится и в «Повести временных лет». Древнерусский воитель обращается к верной дружине: «Нам некуда уже деться, хотим мы или не хотим — должны сражаться. Так не посрамим земли русской, но ляжем здесь костьми, ибо мертвые не принимают позора. Если же побежим — позор нам будет. Так не побежим же, но станем крепко, а я пойду впереди вас: если моя голова ляжет, то о своих сами позаботьтесь… И исполнились русские, и была жестокая сеча, и одолел Святослав, а греки бежали».