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