Как оказалось, Святослав поступил опрометчиво, доверившись византийцам. Иоанну нужна была короткая передышка, которую он использовал для закрепления победы над арабами и умиротворения немцев в Италии. В марте 971 г. император во главе вернувшихся из Сирии войск неожиданно овладел перевалами через Большой Балканский хребет и уже 14 апреля занял болгарскую столицу Преславу. Одновременно его флот, оснащенный смертоносным «греческим огнем», вошел в устье Дуная, отрезав Святослава, находившегося с основными силами на южном берегу реки, от Руси.
Князь, рассредоточивший на зимние месяцы свои войска по болгарским городам, перед превосходящими силами противника вынужден был срочно стягивать силы в хорошо укрепленный Доростол на берегу Дуная. Вскоре город был блокирован с суши и кораблями со стороны реки. Началась трехмесячная осада, в ходе которой русичи неоднократно предпринимали смелые вылазки, уничтожая осадные машины противника. Однако припасы в городе быстро истощались: замаячила угроза голода.
Предвидя крушение своих горделивых замыслов, Святослав вымещал злобу на христианах. Именно в них он усматривал адептов враждебного бога, который поддерживал греков. Началось массовое принесение христиан в жертву Перуну, что, естественно, не облегчило положения осажденных. Но и императорские войска также несли тяжелые потери.
В конце июля 971 г. обе стороны согласились на переговоры. В отличие от Иоанна, прибывшего на встречу с князем в сопровождении пышной свиты в отливающих золотом латах, Святослав приплыл на ладье, гребя веслом наравне с другими воинами, по виду ничем, кроме большей чистоты одежды, не отличающийся от них. Присутствовавший на переговорах византийский историк Лев Диакон описал портрет древнерусского князя: «Вот какова была его наружность: умеренного роста, не слишком высокого и не очень низкого, с мохнатыми бровями и светло-синими глазами, курносый, безбородый, с густыми, чрезмерно длинными волосами над верхней губой. Голова у него была совершенно голая, но с одной стороны ее свисал клок волос — признак знатности рода; крепкий затылок, широкая грудь и все другие части тела вполне соразмерные… В одно ухо у него была вдета золотая серьга».
Личная встреча Иоанна со Святославом скрепила мирный договор, по которому киевский князь должен был покинуть Болгарию и никогда больше не посягать ни на эту страну, ни на византийские владения в Крыму. Император же обязался обеспечить всем необходимым для возвращения домой оставшееся у Святослава 22-тысячное войско и «как к друзьям» относиться к русичам, прибывавшим в Царьград по торговым делам.