В среду 3 апреля император прибыл к воротам Великого Преслава. Город оборонял третий военачальник Святослава, Сфенкел, варяг, наделенный огромным ростом и храбростью[467], и предатель Калокир. Сам Святослав находился в Дристре на Дунае, вероятно, пытаясь сохранить прямое сообщение с Русью, так как в этом месте уже расположился императорский флот. Русы сразу вступили в сражение, но после ужасной и длительной битвы они потерпели поражение и ушли назад под защиту городских стен. Следующим утром, в Великий четверг, к императору подошло подкрепление, включая самые последние механизмы для метания огня. Вслед за этим император дал приказ штурмовать город.
В течение ночи Калокир, заметивший императорские знаки отличия среди нападавших и знавший, что его ждет, если он будет захвачен и узнан, выскользнул из города и сбежал в лагерь Святослава в Дристре. Сфенкел, однако, остался защищать крепость, прилагая максимум усилий; но русы, ослабленные сражением предыдущего дня, не могли составить должную преграду против превосходящего противника и не могли состязаться с греческим огнем. После нескольких часов отчаянной борьбы они ушли, кто еще мог, во внутренний город, крепость-дворец царей.
Отряды императора ворвались во внешний город и наводнили его, убивая всех встречавшихся им русов. В этой жестокой сече также погибли многие болгарские жители, виновные или лишь подозреваемые в том, что помогали варварам язычникам. Посреди бойни императорские войска натолкнулись на царя Бориса, его жену π двоих детей, которые более двух лет находились в плену у русов. Несчастное семейство предстало перед императором. Иоанн соизволил принять их любезно, приветствуя Бориса как князя булгар[468] и сообщая, что он прибыл, чтобы мстить за вред, причиненный Болгарии русами. Но хотя император отпустил болгарских пленников, его действия позволили по-разному интерпретировать данные слова.
Тем временем солдаты Иоанна осадили дворец, представлявший собой большую и хорошо укрепленную группу зданий, подобных Большому дворцу в Константинополе, составлявших город в городе. Русы успешно сопротивлялись императору, пока тот не использовал огнеметные машины. Огонь, охвативший дворцовые здания, сжигал русских воинов или вынуждал их выйти из дворца навстречу своей смерти. Сфенкел с немногими телохранителями пробрался через императорскую армию к Дристре. Таким образом, к вечеру весь Преслав оказался в руках императора.
Утро Страстной пятницы осветило массу тлеющих руин и улицы, забитые трупами. Это был конец Великого Преслава, города, который несколькими годами прежде являлся самым большим и богатейшим из всех городов Восточной Европы, за исключением лишь Константинополя. Император Иоанн провел там Пасху в конце недели, восстанавливая порядок и позволив своей армии отдохнуть. Вскоре он отправил небольшое посольство к Святославу в Дристру и предложил ему либо сложить оружие и просить прощения, либо встретить императорские армии и свою смерть. Несколькими днями позже император отправился в полном вооружении в Дристру. Прежде чем уехать, он восстановил укрепления Преслава и повторно окрестил его, назвав город собственным именем, Иоаннополь. Следовательно, впредь Великий Преслав должен был стать незначительным провинциальным городком Империи, отличаясь от других только обширностью своих руин.
Святослав, находившийся в Дристре, услышав о бедствии своих отрядов, пришел в дикую ярость. В это время в своем лагере он удерживал против воли большую численность булгарских заложников или вспомогательных отрядов, и на них он излил весь свой гнев. Подозревая предательство своих соотечественников и зная, что даже императорское правление в глазах булгар представлялось меньшим злом, чем его, и, решившись силой и угрозами заставить булгар заключить с ним союз, он приказал заковать булгар в цепи и казнил триста магнатов и бояр[469]. Позже, когда к Дристре подошел император, Святослав освободил беднейших булгар и включил их в свою армию; но приказал, чтобы его печенежские союзники убивали их без милосердия, если те попытаются предать его или бежать.