13 апреля 971 года Цимисхий начал бой на подступах Преславы. В результате этого боя византийцы захватили Преслав, и только немногим русам во главе со Сфенкелом удалось прорваться и уйти в Доростол.
17 апреля Цимисхий двинулся к Доростолу, заняв по пути ряд болгарских городов. 23 апреля византийское войско, значительно превосходившее рать русов, подошло к Доростолу. Передовой отряд византийской пехоты осматривал окрестные леса и овраги в поисках засады.
Первый бой под Доростолом произошел уже 23 апреля 971 года. Русы напали из засады на передовой отряд византийцев. Они уничтожили этот отряд, но и сами погибли. Когда Цимисхий подошел к городу, русы ожидали врага на ближних подступах к Доростолу, «сомкнув щиты и копья, наподобие стены». Греки перестроились в боевой порядок: посередине стала пехота, на флангах — конница в железных латах; спереди, прикрывая фронт, — легкая пехота: стрелки из лука и пращники — они непрерывно пускали стрелы, метали камни. Бой был упорный, русы отразили 12 атак. Победа колебалась: ни та, ни другая сторона не брала верх. К вечеру Цимисхий сам повел всю свою конницу против утомленного противника. Под ударами многочисленной конницы византийцев пехота русов отступила и укрылась за городскими стенами Доростола.
24 апреля византийское войско строило укрепленный лагерь под Доростолом. Цимисхий выбрал небольшую возвышенность, на которой были установлены шатры, вокруг выкопан глубокий ров и насыпан земляной вал. Цимисхий приказал воткнуть в землю копья и на них повесить щиты. 25 апреля византийский флот подошел к Доростолу и блокировал город со стороны Дуная. Святослав приказал вытащить свои ладьи на берег, чтобы их не сжег враг. Русы оказались в окружении. В тот же день Цимисхий подступил к городу, но русы не вышли в поле, а только бросали камни и метали стрелы в противника со стен города и из башен. Византийцам пришлось возвратиться в свой лагерь.
Второй бой под Доростолом произошел 26 апреля. Войско русов вышло в поле и выстроилось в пешем строю в своих кольчужных бронях и шлемах, сомкнув длинные, до самых ног, шиты и выставив копья. После атаки, византийцев завязался упорный бой, который шел долгое время без перевеса. В этом бою пал храбрый воевода Сфенкел. Утром 27 апреля бой возобновился. К полудню Цимисхий направил отряд в тыл дружины Святослава. Опасаясь оказаться отрезанными от города, русы отступили за крепостные стены.
После того, как прибыли суда и загородили выход в море, Святослав принял решение сесть в крепкую осаду. В ночь на 29 апреля вокруг Доростола был вырыт глубокий ров, чтобы осаждающие не могли близко подойти к крепостной стене и установить осадные машины. У русов не было съестных припасов, и в темную ночь на 29 апреля они на ладьях провели первую большую вылазку за продовольствием. Русы успели обшарить все окрестные места и с большими запасами продовольствия возвращались домой. В это время они заметили на берегу греческий обозный стан: люди поили лошадей и рубили дрова. В одну минуту русы причалили, обошли их лесом, разгромили и с богатой добычей вернулись в город. Цимисхий, пораженный дерзостью русов, приказал усилить бдительность и не выпускать русов из города. С суши он приказал перекопать все дороги и тропинки и выставить на них стражу.
Осада продолжалась. В это время стенобитными и метательными машинами греки разрушали городские стены и убивали их защитников. В один из дней после обеда, когда бдительность врага была ослаблена, Святослав совершил вторую вылазку. В этот раз русы подожгли осадные сооружения и убили начальника осадных машин. Этот успех воодушевил их.
Третий бой состоялся 20 июля. Воины Святослава вышли из города и построились для боя. Первые атаки византийцев были отражены, но после потери русами одного из крупных военачальников они «закинули щиты за спины» и начали отступать. Византийцы нашли между убитыми русами женщин, которые в мужском снаряжении сражались так же храбро, как и мужчины.
На другой день Святослав собрал военный совет и стал думать с дружиной, как им быть и что делать дальше? Одни предлагали спасаться бегством в темную ночь, другие советовали начать мирные переговоры. Тогда Святослав, тяжко вздохнув, отвечал так: «Деды и отцы завещали нам храбрые дела! Станем крепко. Нет у нас обычая спасать себя постыдным бегством. Или останемся живы и победим, или умрем со славой! Мертвые сраму не имут, а, убежав от битвы, как покажемся людям на глаза?!» Выслушав своего князя, дружина решила сражаться.