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