В 969 году Святослав предпринял второй поход в Болгарию. Усилив свое войско отрядами болгар, киевский князь повернул оружие против вчерашних союзников — византийцев и пошел походом на Константинополь. Вместе с ним шли отряды болгар, печенегов и венгров. Византийцам пришлось расплачиваться за свою недальновидную политику. Ведь опыт Западной Европы давно уже показал, что норманны, даже приглашенные как союзники, имели обыкновение не только грабить те земли, куда доплывали их ладьи, но и оставлять их в своем владении.
Византийский император Иоанн Цимисхий встретил войско Святослава под Адрианополем. В крепости укрылся 10-тысячный византийский отряд под командованием полководца Варды Склира. У Святослава вместе с союзниками было до 30 тысяч войска, но не было осадных машин, способных разрушить стены Адрианополя. Осада затягивалась, и в армии киевского князя появились признаки разложения. Рассчитывавшие на легкую и богатую добычу воины начали роптать.
Варда Склир сделал вылазку, рассчитывая разбить неприятеля, несмотря на его численное превосходство. Византийская конница атаковала печенегов, а затем обратилась в притворное бегство. Печенеги стали ее преследовать, но попали под удар из засады и обратились в бегство. Но в это время византийцев атаковала венгерская конница, а вслед за этим — пехота и конная дружина Святослава. Бой шел с переменным успехом, пока в тыл войску Святослава не ударил большой засадный отряд византийцев. По утверждению Льва Диакона, русы были разбиты, потеряв более 20 тысяч убитыми. Византийцы же потеряли 55 убитых и много раненых. Русский летописец, напротив, полагает, что в битве под Адрианополем победил Святослав. Скорее всего, на самом деле это сражение имело ничейный исход. Если византийцы действительно потеряли 55 человек, то потери войска Святослава вряд ли были намного больше.
Святослав понял, что взять Константинополь не удастся. Византийцы откупились от Святослава данью, и был заключен мир. После этого от Святослава отделились союзники — венгры, печенеги и болгары, в результате чего войско киевского князя уменьшилось до первоначальных 10 тысяч.
Обе стороны рассматривали заключенный под Адрианополем мир как перемирие и готовились к новым боям. К Святославу из Киева прибыли подкрепления. Он разделил свое войско на две части. Князь с основными силами остался в крепости Доростол, а в Преслав направил отряд Сфенкела. В 971 году Цимисхий во главе флота в 300 судов пришел к устью Дуная. Сухопутная армия византийцев, насчитывавшая 15 тысяч конницы и 20 тысяч пехоты, сосредоточилась у Адрианополя. В ее распоряжении имелись осадные машины и огнеметные орудия, стреляющие греческим огнем. К тому времени болгары, первоначально видевшие в Святославе защиту от византийцев, уже отвернулись от него, вследствие чинимых русами насилий и грабежей.
Армия Цимисхия вторглась в Болгарию. 13 апреля 971 года византийцы овладели Преславом. Сфенкел со своим отрядом отступил к Доростолу. 23 апреля у стен этого города появился и Цимисхий. В этот же день произошло первое крупное сражение между основными силами византийцев и русов. В центре боевого порядка Цимисхий поставил тяжелую пехоту, на флангах — тяжелую конницу, а перед фронтом — лучников и пращников. Аналогичный боевой порядок был у русов. Произошло фронтальное столкновение. К концу дня войско Святослава отступило и укрылось за стенами крепости. Византийские историки говорят, что армия русов насчитывала 60 тысяч человек, что кажется неправдоподобным. Если бы Святослав действительно имел двукратное превосходство над противником, он не стал бы обороняться в Доростоле, а атаковал бы противника. Скорее можно предположить, что силы сторон были примерно равны и что войско Святослава, благодаря полученным подкреплениям, возросло до 30 тысяч человек.
Цимисхий построил лагерь и начал осаду. 25 апреля в Дунай вошел византийский флот и блокировал Доростол. Святослав приказал вытащить на берег ладьи, чтобы неприятель не сжег их «греческим огнем». 26–27 апреля произошло новое столкновение под стенами крепости. Исход боя решило появление в тылу у русов византийской конницы Святослав, опасаясь окружения, поспешно отступил в Доростол. В этом сражении погиб воевода Сфенкел.
В ночь на 29 апреля русы вырыли глубокий ров перед крепостными стенами. Чтобы прикрыть земляные работы и запастись продовольствием, отряд воинов Святослава на ладьях спустился по Дунаю и разорил окрестные селения, а также совершил нападение на византийский обоз, захватив богатую добычу. После этого Цимисхий расположил флот непосредственно перед Доростолом, а на суше распорядился перекопать все дороги, ведущие из крепости, и поставить на них дозоры. Однако через несколько дней Святослав предпринял еще одну успешную вылазку, уничтожив несколько осадных машин.