В 1078 г. Никифор Вриенний восстал против императора Михаила VII Дуки, захватившего трон после поражения Романа IV при Манзикерте. Однако неспособность Михаила усмирить своих соперников скоро лишила его трона. В марте 1078 г. на престол вступил Никифор III Вотаниат, способный и удачливый полководец, которому, однако, серьезно не хватало войск. Вести борьбу против Вриенния Никифор III поручил тонкому стратегу и тактику Алексею Комнину и назначил его главнокомандующим всех полевых армий империи.
Вриенний выступил из своей главной базы в Диррахии на албанском побережье и пересек Южные Балканы по Виа Эгнатиа, попутно ведя активную вербовку, что позволило ему довести численность армии до 12 000 человек — по большей части преданных своему вождю и испытанных в боях ветеранов. Войдя с триумфом в свой родной город Адрианополь, Вриенний короновался. Жребий был брошен. Выступая в поход против мятежника, Алексей имел лишь нескольких сотен франкской тяжелой конницы, 2000 турок, присланных союзными анатолийскими эмирами, и из Малой Азии пришло еще около 2000 бойцов. К ним добавились недавно сформированные части «бессмертных» (не связанные с войсками того же названия, созданными Иоанном Цимисхием столетием ранее) численностью до 1000 гвардейцев. Вся имперская армия состояла из 5500, самое большее — 6500 человек, по большей части новобранцев. Турецкий султан обещал подкрепление, но оно еще не подошло, когда император дал Алексею приказ выступать. Сам приказ не оставлял возможностей для разночтений: встретить Вриенния, разбить и отбросить. В таком положении единственный шанс Комнина был в завлечении врага в такую местность, где можно заранее устроить засаду. Как показал ход сражения, первоначальный план Алексея был неудачен и почти привел к поражению. Все же применив ту тактику, которой он должен был придерживаться с самого начала, и благодаря блестящему тактическому удару он сумел полностью изменить ход боя и закончить день громкой победой (см. карту 9).
Прежде всего Алексей Комнин решил намертво прикрыть главную дорогу на Константинополь, не предоставив сопернику альтернативы генеральному сражению. Вриенний стал лагерем недалеко от Кедуктона (от лат. акведук) на открытой равнине. Вступив во Фракию, Алексей расположился на небольшой речке Хальмир, неподалеку от крепости Калаврия, около Селимбрии. Он никак не укреплял лагерь, что ввиду численного превосходства мятежников было бы просто бесполезно, и возлагал все надежды только на внезапный удар по врагу из засады. Чтобы получить информацию о движениях неприятеля, во все стороны была выслана разведка. Некоторые из разведчиков-турок были схвачены и открыли Никифору местонахождение Алексея и численность его войск. После тщательной рекогносцировки Комнин решил, что лучше всего завлечь Вриенния в атаку собственных главных сил, построенных у незащищенного лагеря, и приготовить засаду на холмистом, поросшем кустами участке, через который враг должен был бы наступать.
Вриенний разделил свою армию на три части. На правом крыле стоял его брат Иоанн во главе 5000 франкских наемников, фессалийских всадников, хетарейской гвардии и маниакатов — франкских кавалеристов, завербованных в Южной Италии. Левым крылом командовал Катакалон Тарханиот с 3000 фракийцев и македонян. Центр, где приготовились к бою от 3000 до 4000 македонян, фракийцев и фессалийцев, Никифор оставил за собой. На крайнем левом фланге, приблизительно в миле от главной линии, были поставлены печенеги с задачей при первой возможности охватить и окружить правый фланг Алексея. Следуя проверенным византийским военным традициям, части Вриенния построились в две линии. Вторая линия стояла на небольшом расстоянии позади первой и выполняла роль полевого резерва и прикрытия первой линии на случай отступления.
Комнин разделил свои намного меньшие силы на две части. Константин Катакалон с малоазиатскими и союзными турецкими отрядами стоял справа, сам главнокомандующий с франками и «бессмертными» — слева. Отдельную часть — вероятно из «бессмертных» — послали вперед в засаду на левом фланге, а турки на крайнем правом должны были противодействовать охвату печенегов.
Битва разгорелась, как только мятежники поравнялись с засадой. Внезапность вылазки привела к замешательству в рядах атакующих, которые в течение нескольких минут были опрокинуты и побежали. Но с подходом второй линии во главе с Иоанном Вриеннием порядок быстро восстановился, и перед лицом превосходящих сил неприятеля засадные части, в свою очередь, обратились в бегство, неудачным следствием которого было то, что беглецы смяли и увлекли за собой войска собственного левого фланга, в первую очередь еще недостаточно хорошо обученных и необстрелянных «бессмертных». Понеся сравнительно легкие потери, эти части, достигнув безопасного удаления от поля боя, остановились и снова собрались под знаменами. В пылу схватки Алексей не заметил потери половины армии и во главе небольшого отряда продолжал сражаться, пока не понял, что вскоре будет полностью отрезан и окружен.
Уже весь вражеский правый фланг двинулся в обход и наверняка быстро бы достиг цели, если бы не героическое сопротивление франкских воинов, стоявших насмерть. На правом фланге ромеев бой проходил с переменным успехом, пока печенеги не охватили части Катакалона и не ударили им во фланг и тыл. Турки, которые должны были предотвратить этот маневр, были полностью связаны сдерживанием натиска Тарханиота. Малоазиатские части смешались и начали беспорядочное отступление, а вслед за ними подались и турки. И тут, вместо того чтобы развивать успех, печенеги остановились и, согласно историку Вриен-нию — внуку мятежника, в полном порядке развернулись и бросились на собственный лагерь, богатство которого давно вызывало их острейшую зависть. После полного разграбления имущества собственной армии они попросту отправились восвояси.
Для Комнина в полном мраке блеснул луч спасения. К этому времени он все же оказался полностью окружен с верными франками и собственной свитой, которая в один голос умоляла его спасаться бегством. Вместо этого Алексей решил пробиться лично к Вриеннию, убить его и деморализовать все его войско, однако ближайшее окружение убедило его оставить эту затею.
Было принято решение идти на прорыв, но дело осложнялось тем, что мятежники не собирались выпускать никого из окруженных. После яростной схватки только шестеро гвардейцев вместе с командующим вырвались из кольца за боевые порядки неприятеля. Здесь они наткнулись на группу печенегов, возвращавшихся с добычей после разграбления обоза собственной армии. Они вели под уздцы парадного коня Вриенния, навьюченного его коронационными регалиями. Ромеи бесстрашно бросились на грабителей, отбили животное и драгоценности и продолжили свой путь, удаляясь с поля битвы.
Со своими воинами, которых теперь можно было пересчитать по пальцам, Алексей подъехал к низкому холму позади первоначального расположения своей армии и вдруг наткнулся на все бежавшие с поля боя части, построенные в полном порядке. Громовым голосом Алексей возвестил о гибели Никифора и в доказательство продемонстрировал свои пышные трофеи. В это время показались бегущие с поля боя турки. Они были остановлены, перестроены и вместе со всеми брошены в бой. Момент был самый подходящий. Хотя доблестные франки и остатки гвардии Алексея уже начали сдаваться, зато в тылу Вриенния царил полный хаос. Мятежники были крайне раздосадованы потерей всего имущества. С другой стороны, считая сражение выигранным, они позволили себе расслабиться.