Император приказал сыграть сбор, и, как вспоминает Лев, солдаты возвращались в лагерь с победными песнями. Место для лагеря было выбрано в низине, на некотором расстоянии от крепости. Он был укреплен рвом и земляным валом, на котором густым частоколом установили копья и колья, развесив на них щиты. Лев Диакон обращает внимание, что это было обычной практикой организации ромейского лагеря во враждебной стране.
На следующий день имперские отряды приблизились к крепости и провели разведку боем некоторых фортов, но были встречены градом стрел и камней. В ходе перестрелки ни одна из сторон не понесла ощутимого урона, и византийцы отступили к лагерю, оставив крепость под постоянным наблюдением. К вечеру русы сделали вылазку, чтобы отогнать ромейские пикеты. Диакон пишет, что это был первый случай, когда славян увидели верхом. Но их неопытность в конном бою вскоре сказалась, и ромейская конница легко отбросила их обратно, в Доростол.
На этой стадии император, кажется, не хотел вести слишком жесткую осаду, а скорее пробовал выманить русов в поле, предпочитая победить в открытом сражении, а не штурмовать неприступные стены и башни крепости или брать ее измором.
Но Иоанн подготовился к любому развитию событий. На третий день осады Доростола к крепости подошел сильный византийский флот, доставивший припасы и подкрепления. Многие корабли были оборудованы машинами, извергающими греческий огонь. Средневековый напалм, выбрасывавшийся из труб, установленных на бортах судов, был уже известен русам. Именно этим оружием тридцатью годами ранее были сожжены корабли отца Святослава, Игоря. Прибытие флота, запершего славян на южном берегу Дуная, лишило их последнего шанса вырваться. Бурное ликование приободрившихся по этому поводу ромеев, очевидно, не способствовало подъему духа в рядах осажденных.
На следующий день Святослав в надежде разбить неприятеля снова вывел свою дружину в поле. И снова битва не выявила победителя, пока византийские тяжелые конники со своими убийственными булавами не опрокинули русов и не заставили их, сначала в порядке, а потом врассыпную, искать защиты за крепостными стенами.
Император приказал начать правильные осадные работы и установить метательные машины на валах вокруг города. На головы защитников непрерывной лавиной обрушились камни и стрелы, вызывая серьезные потери и упадок духа. Чтобы вывести эти орудия из строя, славянам приходилось предпринимать ночные вылазки. Во время одной из них сторожевой пост ромеев был захвачен врасплох и его начальник, Иоанн Куркуас, который, как сообщается, был мертвецки пьян, погиб. Этот Куркуас на всю армию славился богатством своего гардероба, и убивший его рус принял щеголя по одежде за императора. Он поднял отрубленную голову на копье и дразнил ромеев, хотя и без того эффекта, на который надеялся. Осадные машины остались неповрежденными и продолжали вести смертоносный огонь.
Несколько приободренные удачной вылазкой, русы на следующий день снова вышли из ворот, и Иоанн позволил им беспрепятственно построиться в боевой порядок. Ромеи выступили глубокой фалангой, с кавалерией на флангах. Лучники и пращники, как обычно, встали во второй линии, за тяжелой пехотой. Русам удалось глубоко вклиниться в фалангу и нанести ромеям тяжелые потери, но контратака конницы, поддержанной личным конвоем императора, восстановила положение, при этом главный воевода Святослава пал от руки личного телохранителя императора, Анемаса. Общее наступление ромеев на деморализованного неприятеля вызвало беспорядочное отступление к крепости.
Той же ночью открылись городские ворота, и воины русов вместе с членами их семейств вышли на поле битвы, чтобы найти и после погребальных обрядов предать огню тела своих близких. Был ли отдан ромейским войскам приказ не мешать им, или они бездействовали по своей инициативе, осталось невыясненным. После этого Святослав собрал своих командиров на военный совет. Некоторые воеводы предлагали прорываться на лодках на другой берег Дуная, сквозь блокаду византийского флота; другие стояли за немедленные переговоры с императором, чтобы спасти как можно больше жизней своих воинов. Один из сторонников переговоров вынужден был признать, что русы ничего не могли противопоставить закованной в броню византийской коннице, особенно потеряв лучших бойцов, на которых в битвах равнялись остальные.
Святослав отклонил оба предложения и при полной поддержке большинства собравшихся сказал, что русы сдаваться не привыкли, так что лучше всем погибнуть в бою и попасть прямо в Валгаллу. По свидетельству Льва Диакона, русы никогда не сдавались живыми в руки врагов.
В то же время приблизительно 2000 воинов в отчаянной попытке пополнить запасы продовольствия покинули Доростол в маленьких лодках и высадились на некотором расстоянии от крепости на южном берегу реки. Флот византийцев прозевал эту диверсию, несмотря на строжайший приказ императора никого не выпускать из осажденного города. Раздобыв провиант для своих товарищей, русы двинулись в обратный путь по берегу и случайно наткнулись на маленькую группу византийских кавалеристов, посланных напоить лошадей и собрать хворост. Захваченные врасплох ромеи были перебиты, и хотя в лагере подняли тревогу, русы успели вернуться в крепость со своей добычей раньше, чем их успели перехватить. Яростный гнев императора обрушился на головы его флотоводцев. Их халатность была причиной неоправданных потерь ромеев, позволила поднять боевой дух врага и пополнить его запасы. Иоанн предупредил, что виновные в повторении подобного проступка подвергнутся смертной казни.
На следующий день, в пятницу 24 июля, славяне целое утро готовились к сражению, и после полудня все войско Святослава вышло и построилось перед крепостью. Они стояли глубокой, сплоченной фалангой, огражденной сплошной стеной щитов и ощетинившейся копьями. Ромейская армия, как обычно, была разделена на три отряда, с тяжелой конницей позади обоих флангов и с самим императором в центре, во главе собственного конного конвоя в качестве единственного резерва. Поле битвы было несколько ближе к крепости, чем ранее, и в результате оба войска расположились на более узком фронте, с лесистой местностью на одном фланге и заболоченными лугами, тянущимися до самой реки, на другом. Русы, чтобы противостоять натиску тяжелой конницы ромеев, разместили своих лучников на флангах, в готовности встретить убийственным огнем любую попытку охвата. Ведомые на этот раз лично Святославом, славяне со страшной силой обрушились на боевые порядки ромеев и скоро начали теснить неприятельский центр. Применив большие, чем обычно, луки, русы нанесли тяжелые потери убитыми и ранеными византийской коннице. Император, заметив, что его воины на позициях устали и уже изнемогают от жары и от жажды, приказал передавать по рядам бурдюки с водой, смешанной с вином. Таким образом, удалось подкрепить силы солдат, не выводя части из боя.
Понимая, что неблагоприятная тактическая ситуация является следствием неудачной позиции, император отдал приказ об общем отступлении, совершенном в полном порядке. Ромейские войска остановились на некотором расстоянии от крепости, на широкой равнине, давшей свободу маневра тяжелой кавалерии.
Во время отступления один из византийских командиров, Федор Мистия, был отрезан от своих солдат, что свидетельствует о плотности преследования, и вокруг него разгорелась жестокая схватка. Он схватил за пояс убитого им руса и прикрывался им, как щитом. В конце концов, ему на помощь пришли товарищи, которые вырвали его из окружения и благополучно отошли назад, на линию главных сил. Некоторое время спустя Анемас, уже отличившийся за время осады, прибыл с частью личного императорского конвоя (вероятно, это были анатолийские «бессмертные» — гвардия, созданная императором Иоанном вскоре после его вступления на престол в 969 г.), чтобы укрепить линию. Сам Анемас пробился достаточно близко к князю, чтобы непосредственно напасть на него и сбить с ног, но доспехи Святослава предотвратили серьезное ранение, а сам Анемас тут же был пронзен копьями и добит топорами княжеской охраны.
Воодушевленные этим эпизодом, русы усилили натиск на центр, и ромейская линия уже начала ломаться. Часть конницы в тылу главных сил дрогнула и стала поворачивать коней. В этот критический момент Иоанн решил, что должен лично повести свою конную гвардию. Брошенные в бой свежие силы и присутствие императора в боевых порядках стабилизировали центр и еще раз выправили положение. В этот момент поднялся сильный ветер и грянула гроза — обычное явление для этих мест в самом разгаре лета. На беду славян, ветер дул им в лицо. Очевидцы вспоминали о появлении всадника на белом коне, который вел силы самой природы на помощь византийцам, помогая им прорваться сквозь сомкнутые щиты сплоченных линий русов. Позднее стали говорить, что это был Святой Феодор, небесный патрон императора и покровитель воинов в византийском пантеоне. Наверняка это был сам Цимисхий и его личный конвой, врубившийся в ряды воинов Святослава. Так или иначе, этот порыв увенчался полным успехом. Теперь уже