О причинах последней русско-византийской войны русские летописцы никаких подробностей не сообщают, они лишь констатируют сам факт. В Константинополе к власти пришел Константин IX Мономах и византийский историк Михаил Пселл написал, что «варвары, хотя и не могли ни в чем упрекнуть нового царя, пошли на него войной без всякого повода, чтобы только приготовления их не оказались напрасными. Такова была беспричинная причина их похода на самодержца» (41, 98–99). По мнению Иоанна Скилицы причина войны заключалась в убийстве русского купца византийскими торговцами во время ссоры на рынке в Константинополе. Но это могло быть лишь поводом, истинные причины конфликта лежали гораздо глубже. Попытка решить проблему мирным путем провалилась, по свидетельству Ибн ал-Асира русские послы выдвинули в Константинополе «необычные» требования (9, 115–116). При этом историк не поясняет, в чем был смысл этого демарша. Как бы там ни было, византийцы были вынуждены вступить в войну с Русью.
Для похода на Константинополь Ярослав собрал значительные силы, возглавил войско старший сын великого князя Владимир. Как пишет Иоанн Скилица, княжеская рать насчитывала 100 000 воинов (150, 237). Иные данные приводит византийский историк Михаила Атталиат, по его мнению, русский флот насчитывал 400 судов (150, 236).
Бой у маяка Искресту в 1043 году. Из книги Е.А. Разина «История военного искусства»
Поскольку на ладье помещалось 50 человек, численность русского воинства можно определить в 20 000 бойцов. В состав княжеской рати входили полки Южной Руси и варяжские дружины, о новгородцах в летописях упоминания нет. Весной 1043 г. ладейный флот Владимира Ярославича отправился в поход на Константинополь (54, 128). В устье Дуная была сделана остановка, воины высадились на берег и стали грабить окрестности. Владимир собрал военный совет, чтобы обсудить дальнейший ход войны. Русские воеводы предложили остаться на месте, дождаться имперскую армию и вступить с ромеями в бой на суше. Судя по всему, они опасались огненосных дромонов византийцев и предпочитали сражаться на берегу. Варяги настаивали на продолжении похода к Константинополю по морю, мотивируя тем, что оставленный для защиты вражеской столицы флот невелик. И это было правдой. Как пишет Михаил Пселл, «Морские силы ромеев в то время были невелики, а огненосные суда, разбросанные по прибрежным водам, в разных местах стерегли наши пределы» (41, 99). Возможно, Владимир согласился бы с мнением воевод, но неожиданно в русском лагере объявилось византийское посольство. Император просил князя не разрывать мирный договор, не начинать боевые действия и обещал исправить совершенные в отношении русских купцов несправедливости. Владимир истолковал мирные инициативы Константина Мономаха как признак слабости и объявил о продолжении войны. Князю было 23 года, он был молод, горяч и жаждал ратной славы. Победило мнение варяжских конунгов, русский флот направился к Константинополю. Прибыв к Босфору, Владимир приказал воинам вытащить ладьи на берег и отдохнуть перед грядущим сражением. Узнав о появлении вражеского флота, Константин IX приказал собрать все боеспособные корабли в гавани Константинополя и отправить навстречу противнику. Из столицы были высланы русские купцы и находившиеся на службе Империи наемники из Руси. Император покинул дворец, поднялся на борт флагманского корабля и повел флот к Понту Эвксинскому. По берегу шла сухопутная армия Империи. Морское сражение между русскими и ромеями произошло на следующий день «в устье Понта, в так называемом Фаросе» (150, 237). Там, где в 941 г. ладьи князя Игоря встретились с огненосными дромонами патрикия Феофана.
На рассвете Владимир вывел флот в море и выстроил ладьи в длинную линию, растянув строй судов от одного берега до другого. Византийские корабли выстроились в боевой порядок напротив вражеского флота, Константин IX покинул дромон и поднялся на пологий холм, чтобы отсюда наблюдать за сражением. Флоты простояли друг напротив друга до самого вечера, никто не решился первым начать сражение. Когда очередная попытка ромеев вступить с противником в переговоры потерпела неудачу, император приказал атаковать вражеский флот. Вперед выдвинулись два огненосных дромона под командованием патрикия Василия Феодорокана, ему было приказано сблизиться с вражескими судами и спровоцировать князя Владимира на атаку. Но патрикий увлекся, нарушил приказ и ударил в центр позиций противника. Ладьи и драккары быстро окружили дромоны, русские и варяги устремились на абордаж. Ромеи с высоких палуб кидали камни и копья, дружинники рубили борта дромонов топорами и пытались пробить заостренными бревнами. Морская битва стала похожа на сухопутное сражение. Ситуация изменилась, когда ромеи стали использовать греческий огонь. Семь ладей загорелись, три были потоплены ударами таранов, на остальных русских судах началась паника. Феодоркан воспользовался ситуацией и со своими людьми захватил вражеское судно. Увидев успех авангарда, в бой вступили остальные корабли императорского флота. Византийская атака обратила русских в бегство, ладьи тонули, налетали на скалы и подводные камни. В это время резко изменилась погода, восточный ветер погнал огромные волны на княжеский флот и разбросал ладьи по морю. Византийские корабли, более мощные и устойчивые, изменили курс и стали уходить в Босфор. Ладью Владимира разбило ветром, князя спас воевода Иван Творимирич. Большая часть флота погибла, согласно свидетельству Скилицы на берегу было обнаружено 15 000 погибших русских (150, 238). Константин Мономах два дня пробыл на месте сражения и вернулся в столицу. Солдатам сухопутной армии досталось огромная добыча, среди трофеев были оружие и доспехи, выброшенные волнами на берег (150, 238). Поражение Владимира было сокрушительным, вновь проявилось подавляющее преимущество ромеев в морской войне.
Около 6000 дружинников и ратников оказались на суше без оружия и воинского снаряжения, не нашлось для них и места в ладьях. Приближенные Владимира наотрез отказались возглавить этот отряд, только воевода Вышата проявил мужество и принял командование над отчаявшимися людьми: «Вышата же воевода, видев дружину свою стоящу, и рече: «Не иду к Ярославу» (54, 128). Вышата повел отряд на север, но на половине дороги был перехвачен ромеями. По сообщению Иоанна Скилицы, «архонт городов и деревень у Истра» Катакалон Кекавмен в окрестностях Варны разбил отряд Вышаты и взял в плен 800 русских воинов (150, 238). Многие из пленников были ослеплены. Владимиру повезло больше, он даже умудрился взять небольшой реванш у ромеев. Как пишет Иоанн Скилица, в погоню за разбитым русским флотом были отправлены 24 триеры под командованием патрикия Константина Каваллурия (150, 238). Были это огненосные дромоны или простые суда, неизвестно. Летописцы приводят другие данные о количестве византийских кораблей: «И посла царь именем Монамах, по Руси в след олядии 14» (54, 128). Как бы там ни было, ромейские полководцы византийцы ошиблись в своих расчетах и выделили для преследования недостаточно судов. Русские и варяги воспользовались малочисленностью противника и тактическими ошибками патрикия Каваллурия. Когда 11 византийских кораблей неосмотрительно вошли в бухту, где стоял русский флот, ладьи перекрыли противнику пути отступления и атаковали триеры со всех сторон. Четыре судна были захвачены, остальные потоплены, патрикий Каваллурий погиб. После этой победы остатки русского флота вернулись в Киев.
С.М. Соловьев подвел итоги конфликта между Русью и Империей: «Чем обнаруживалась вражда в продолжение трех лет, неизвестно; на каких условиях был заключен мир, также неизвестно» (157, 219). Так закончилась последняя русско-византийская война.