23 апреля передовой отряд ромеев попал в засаду и был разбит. Император приказал прочесать окрестности, пойманных дружинников привели к Цимисхию и изрубили мечами на глазах у базилевса. После этого на равнине у Доростола в бой вступили главные силы противников. Святослав выстроил войско обычным боевым порядком: «Тавроскифы плотно сомкнули щиты и копья, придав своим рядам вид стены, и ожидали противника на поле битвы» (7, 73). Это были воины, «защищенные кольчугами и доходившими до самых ног щитами» (7, 76). Цимисхий поставил в центре боевых порядков тяжеловооруженную пехоту, за ней поставил легковооруженных воинов, на флангах расположил панцирную кавалерию катафрактариев. Возникает вопрос о наличии у Святослава конницы. Лев Диакон постоянно напоминает читателям о том, что русские не умели сражаться на конях: «Они всегда прежде шли в бой в пешем строю, а ездить верхом и сражаться с врагами [на лошадях] не умели» (7, 75). И даже не умели управлять лошадьми при помощи поводьев. Это преувеличение. Русские постоянно воевали со степняками, что было невозможно без сильной и хорошо подготовленной конницы. Поэтому можно говорить о том, что конная дружина у Святослава была, пусть и немногочисленная. Битва долго имела неясный исход, «стена щитов» до самого вечера успешно отражала атаки византийской пехоты. Тогда Цимисхий повел в атаку панцирную кавалерию. Святослав отступил в Доростол, поле боя осталось за ромеями. На рассвете имперская армия подошла к городу и расположилась лагерем на холме. Цимисхий опасался вражеских атак и поэтому распорядился окружить расположение войск рвом и валом. Напротив восточных ворот Доростола расположился стратопедарх Петр с воинами из Фракии и Македонии, у западных ворот стоял Варда Склир с войсками из восточных провинций.
На следующее утро ромеи пошли на штурм. Русские удачно использовали стоявшие на городских стенах и башнях болгарские метательные машины, нанесли противнику большие потери и заставили отступить обратно в лагерь. Рассказ Льва Диакона о дальнейших событиях противоречив. Историк пишет о том, как русские вышли сражаться против ромеев в конном строю, хотя перед этим внушал читателям, что они этого не умеют делать. Скилица просто констатирует сам факт появления русских всадников и ничего не пишет, что воины Святослава не умели сражаться в конном строю: «Вышли они, выстроившись в боевой порядок, и тогда в первый раз появились верхом на лошадях, в предшествующих же сражениях бились пешими» (7, 128). Вряд ли Святослав повел в конную атаку воинов, не умеющих ездить на лошадях, да и сам ход боя в изложении Скилицы об этом не свидетельствует. После продолжительного сражения панцирная кавалерия Империи отбросила русскую конницу обратно в город. В этот же день по Дунаю поднялись огненосные дромоны ромеев и корабли с продовольствием для сухопутной армии. Опасаясь греческого огня, Святослав распорядился вытащить ладьи на сушу. Началась тесная блокада Доростола.
Киевский князь не прятался за городскими укреплениями, он всё время пытался навязать Цимисхию свою тактику ведения войны. Вечером 26 апреля русская рать под командованием воеводы Сфенкела вышла из Доростола и выстроилась на равнине перед городом. Цимисхий вызов принял, покинул лагерь и развернул армию в боевые порядки. Битва свелась к лобовому столкновению и долго шла с переменным успехом, чаша весов клонилась то на одну, то на другую сторону. Переломным моментом стала гибель Сфенкела, сражавшегося в первом ряду и погибшего в рукопашной схватке. После смерти воеводы русские стали медленно отступать к городу. Цимисхий попытался развить успех и бросил в бой катафрактариев, но русские закрылись большими щитами, отбили все атаки и ушли в Доростол. После этого Святослав на некоторое время отказался от полевых сражений. Однажды ночью русские выкопали вокруг города глубокий ров, чем сильно затруднили наступление ромеев на Доростол.