Новгородцы выступают в качестве инициаторов сражения. Какая-то часть войска сомневалась в целесообразности битвы, и ей пригрозили репрессиями. Святополк ночной порой был занят пиром со своей дружиной. Выражение «противу свету» имеет хронологическое значение. Например, выражение «против среды» означает «накануне среды». (4, 518) Переправа через Днепр состоялась до рассвета. Войско переправлялось в разных местах, а соединилось только перед нападением. Положение Святополка было осложнено тем, что союзные печенеги были на противоположном берегу озера и не могли оказать ему помощь. Дружину Святополка оттеснили на озёрный лёд, который не выдержал тяжести воинов. Никифоровская летопись:
«И бысть сеча велика, и обломилися на леду дружина Святополча, а Святополк побеже в Ляхы». (12, 23)
В Воскресенской летописи события излагаются подробнее:
«И притиснуша Святополчи вои ко озеру, и выступиша на лед, и обломися под ними лед, и одолети нача Ярослав. Видев же Святополк и побеже, и одоле Ярослав». (10, 325)
Часть воинов провалилась под воду, что и стало началом поражения. Святополк бежал, его войско было разгромлено.
В Новгородской первой летописи по Синодальному списку канун и начало битвы изложены несколько иначе:
«…а вы плотници суще, а приставим вы хором рубити». И начя Днепр мерзнути. И бяше Ярославу муж в приязнь у Святополка. И посла к нему Ярослав нощью отрок свои, рек к нему. И рек к нему: «оньси, что ты тому велиши творити; меду мало варено, а дружины много». И рече ему муж то: «рчи тако Ярославу: даче меду мало, а дружины много, да к вечеру вдати». И разуме Ярослав, яко к нощи велит сецися. И том вечере перевозися Ярослав с вои на другыи пол Днепра, и лодь отринуша от берега. И тои нощи поидоша на сецю. И рече Ярослав дружине: «знаменаитеся, повивайте собе убрусы голову». И бысть сечи зле, и до света победиша Святополка». (13, 15)
Автор рассказа из Радзивиловской летописи, неприязненно относясь к Ярославу, преуменьшил его роль в сражении под Любечем. Одновременно он выставил главными героями битвы жителей новгородского правобережья, преуменьшив масштаб злодеяний славенцев против князя. Оскорбиться сравнением с плотниками должны были славенские бояре, но никак не новгородские плотники. Тенденциозность свидетельствует о принадлежности рассказчика к богатому и образованному семейству со Славенского конца, пострадавшему во время мятежа 1017 года.
Во время ледостава Днепра Ярослав получил ценный совет от своего сторонника из противоборствующего лагеря. Сущность совета понятна. Вечером Святополк устроил дружине большой пир, который продолжался всю ночь, вплоть до получения известия о нападении. Доброхот предложил воспользоваться ожидавшимся застольем. Победа была одержана до наступления рассвета. Решение о начале битвы было принято князем, а не его воинами.
В Никоновской летописи говорится об ожесточённости ночной схватки:
«А абие того вечера перевозися Ярослав на ону страну Днепра и лодьи отринуша от берега. И тои нощи поидоша на сечю. И рече Ярослав дружине: «Знаменаитеся, повивайте собе главы своя убрусом». И бысть сеча зла, оже за рукы емлющеся сечаху и по удолием кровь течаше. Мнозе верни видяху аггелы Божиа помогающа Ярославу. И до света победиша Святополка». (14, 175)
Обширное описание битвы есть у Татищева:
«6524 (1016). Ярослав, стоя на оной стране Днепра, воды ради великой никоторой не смел Днепр переити. Стояли противу друг друга до трех седмиц, биючеся помалу, переезжая чрез реку, доколе вода стала убывать. Воевода же Святополков, имянем Волчей Хвост, ездя возле берега, укорял новогородцев, глаголя: «Почто пришли с хромцем сим, вы бо плотники суще, а не воини. Если хотите, мы определим вам работу хоромы рубить в Киеве, да не праздни будете». Слышав же новогородци сие поношение, вельми оскорбились и стали просить Ярослава, чтоб заутро шел через реку, объявляя: «Если кто с нами не поидет, мы сами тех, яко неприателей, побьем».
Тогда было уже в замороз. Святополк стоял междо двемя озеры. Бысть же Ярославу приятель от вельмож Святополковых, к которому послал Ярослав отрока своего и велел спросить: «Войска имею много, а меда недостаточно, скажи, когда лучше пить». И отвещал ему вельможа тот: «Когда тебе в день меда мало. То готовь к ночи и меньше истратишь». Ярослав уразумел, что ночью велит наступать, велел войскам тихо готовиться. Святополк же веселился всю ту ночь, пил с вельможи своими.
А Ярослав, вооружа войско, ночью велел всем головы перевезать белыми платками и на зоре, перевезшися, высадя войско на берег, велел лодки все назад отвести от берега, объявя всем, что назад бежать пути не осталось, но или победить, или помереть с честию нуждно. И, увесчав к храбрости все войско, пошел на Святополка.
Святополк же не успел всех войск устроить, вышел с частию, колико собраться вскоре могло. И был междо ими бой вельми жесток. Но понеже печенеги Святополковы стояли за озерами. Для того не могли помочи учинить, а у Ярослава, хотя много пало, но из-за Днепра войска приспевали. Для того принужден Святополк отступить на озера, где от множества войска лед обломился, и многое войско его потонуло. Что видя, Святополк бежал в Польшу с малыми людьми, а печенеги ушли в степи. И тех, догоняя, Ярославли воины многих побили. Руских же не велел более побивать, ниже пленить, но велел всем им идти к Киеву в домы своя». (20, 73–74)
Татищев или его информатор неправильно поняли выражение «против света», заменив его выражением «на заре». Но некоторые дополнительные детали рассказа сомнений не вызывают. Ярослав готовился к выступлению тайно, чтобы не выдать раньше времени своего замысла. В решающую минуту около Святополка оказалась только малая часть его армии. Оттеснённые на озерный лёд сторонники великого князя провалились в воду.
Любечская битва запечатлена в саге. Само собой разумеется, что главными героями битвы в ней выступают Эймунд и его воины:
«Бурицлав выступил из своих владений против своего брата, и сошлись они там, где большой лес у реки, и поставили шатры, так что река была посередине. Разница по силам была между ними невелика.
У Эймунда и всех норманнов были свои шатры. Четыре ночи они сидели спокойно — ни те, ни другие не готовились к бою. Тогда сказал Рагнар: «Чего мы ждём и что это значит, что мы сидим спокойно?» Эймунд конунг отвечает: «Нашему конунгу рать наших недругов кажется слишком мала; его замыслы мало чего стоят». После этого они идут к Ярицлейву конунгу и спрашивают, не собирается ли он начать бой. Конунг отвечает: «Мне кажется, войско у нас подобрано хорошее и большая сила и защита». Эймунд конунг отвечает: «А мне кажется иначе, господин. Когда мы пришли сюда, мне сначала казалось, что мало воинов в каждом шатре и стан только для виду устроен большой, а теперь уже не то — им приходится ставить ещё шатры или жить снаружи. А у вас много войска разошлось домой по волостям, и ненадёжно оно, господин». Конунг спросил: «Что же теперь делать?» Эймунд отвечает: «Теперь всё гораздо хуже, чем раньше было. Сидя здесь, мы упустили победу из рук, но мы, норманны, дело делали: мы отвели вверх по реке все наши корабли с боевым снаряжением. Мы пойдём отсюда с нашей дружиной и зайдём им в тыл, а шатры пусть стоят пустыми. Вы же с вашей дружиной как можно скорее готовьтесь к бою».
Так и было сделано. Затрубили к бою, подняли знамёна, и обе стороны стали готовиться к битве. Полки сошлись, и начался самый жестокий бой, и вскоре пало много людей. Эймунд и Рагнар предприняли сильный натиск на Бурицлава и напали на него в открытый щит. Был тогда жесточайший бой, и много людей погибло, и после этого был прорван строй Бурицлава, и люди его бежали. А Эймунд конунг прошёл сквозь его рать и убил так много людей, что было бы долго писать все их имена. И бросилось войско бежать, так что не было сопротивления и те, кто спаслись, бежали в леса и так остались в живых». (2, 109)
Новгородцы применили ту же тактику, что и в битве 988 года с мятежниками Варды Фоки под Хрисополем. Нападение было ночным, причём часть сил, обойдя противника, ударила с тыла. Об этом говорит Эймунд, и это подтверждается выражением «ударить в открытый щит», то есть напасть с незащищённой щитами тыльной стороны войска противника. Русское соответствие этого выражения — «ударить в спину».
Становится понятным характер разделения сил Ярослава, о котором говорится в Радзивиловской летописи. Отборные части, среди которых были скандинавские наёмники, переправились выше по Днепру и вышли к лагерю Святополка, стоявшему в тылу основного войска киевлян. Остальная армия новгородцев переправилась напротив лагеря и связала силы противника, расположенные у берега. Внезапный натиск с двух противоположных сторон привёл к успеху.
В воспоминаниях участвовавших в ночном рейде левобережных новгородцев описаны переговоры с Блудом и вечерняя переправа. Славинцев как бывших мятежников отправили в менее ответственное нападение — вместе с остальным войском прямым путём через Днепр. В их воспоминаниях запечатлены более поздняя утренняя переправа и участие в битве печенегов.
Ярослав возглавил нападение на лагерь киевлян. Это была самая опасная и решающая часть битвы. В случае обнаружения отряда на дальних подступах к врагу участь его была бы печальной. Но даже внезапное нападение на укреплённый лагерь, в котором были собраны отборные киевские дружинники, ещё не сулило безоговорочного успеха.
Две боярские гвардии сошлись в жестокой сече. В это время остальные киевские войска оказались в сложном положении. Береговая охрана была лишена старших командиров, собравшихся на великокняжеский пир, слышала в тылу шум битвы, а со стороны Днепра на неё волна за волной обрушивался десант новгородцев и их союзников. Отряд, собравшийся в ночной сумятице боя вокруг Святополка, был выдавлен на тонкий лёд озера, который не выдержал тяжести людей. Святополку с немногими соратниками удалось бежать, остальные киевляне сдались на милость победителя.
Печенежская конница как наиболее подвижная часть армии киевлян должна была участвовать в охране берегов. Святополк не мог с точностью предугадать место высадки десанта. В задачу конницы как раз и входили обнаружение переплывающих Днепр новгородцев даже в удалении от лагеря киевлян и их задержание до прибытия главных сил. В связи с этим основную часть печенегов должны были разместить на флангах армии, преимущественно к югу по течению реки от основного лагеря. Ведь в случае успешной переправы южнее лагеря новгородцам открывался путь на Киев. Выставив заслоны, они могли двинуться на захват столицы. Именно поэтому Ярослав переправился выше по течению реки, где его меньше всего ждали.
Успешное преследование печенегов, при котором удалось истребить часть кочевников, свидетельствует о том, что в переправе через Днепр участвовала конница. Конница была нужнее для глубокого рейда в тыл противника, нежели для прямого нападения. Судя по всему, новгородская конница во главе с князем напала на войско Святополка с тыла, а пешая часть армии поддержала это нападение со стороны Днепра.
Замена у Татищева трёх месяцев на три седмицы недостоверна. Ледостав на Днепре в интересующую нас эпоху начинался в декабре. Так, на юге в 992 году Днепр замёрз в начале января. В районе Любеча ледостав должен был начаться на несколько дней раньше. Войско Ярослава спустилось к Любечу не позднее середины сентября, и трёхмесячное противостояние более соответствует реалиям того времени.
Мы имеем несколько определений продолжительности днепровского противостояния: три месяца, более трёх месяцев, три недели, четыре дня. Четыре дня появились в качестве переиначивания первоначального четырёхмесячного периода. Создатель саги счёл, что столь длительное бездействие не красит его славных викингов, и ускорил ход событий, заменив месяцы днями. Период в более чем три месяца мог превратиться округлением в четырёхмесячный только в случае, если четвёртый месяц переваливал бы за половину. Три месяца могло появиться из-за сокращения первоначального определения периода в три месяца и несколько дней. Остаётся татищевское исчисление противостояния в три недели.
Посольство Святополка отправилось в Новгород после казни Бориса, то есть не ранее 26 июля. К Ярославу они прибыли на Успение, то есть 15 августа были уже в городе. Продолжительность пути составила около 20 дней. Соответственно и новгородцы аналогичный путь на юг должны были совершить примерно за такое же время. От Киева до Новгорода около 1000 километров. На один день пути приходится около 50 километров, что соответствует скорости сухопутных торговых караванов раннего Средневековья.
Ярослав мог выступить в поход самое раннее на следующий день после вече, на котором он замирился с новгородцами, то есть в воскресенье 18 августа. Любеч отстоит от Киева на 150 километров, или на три дня пути. К Любечу новгородцы прибыли примерно через 17 дней, не ранее вечера 3 сентября. В этом случае три месяца противостояния закончились 4 декабря, а сама битва произошла позднее.
Накануне битвы в лагере киевлян отмечали какое-то крупное празднество. Самым большим праздником декабря является Рождество Христово. Между Рождеством и 4 декабря как раз и насчитывается три недели, то есть указанный Татищевым период. Следовательно, три недели появились из сокращения первоначального выражения «три месяца и три недели». У одних летописцев уцелела первая часть выражения, у других — вторая.
Рождество в 1017 году приходилось на среду. Битва началась в ночь с 25 на 26 декабря и закончилась в «военный» для русов четверг — Перунов день - ранним утром 26 декабря. Противостояние войск началось в четверг 5 сентября, когда погиб Глеб. В то время когда Глеб приехал в Тверь, Ярослав был уже в районе Смоленска и им не удалось встретиться.
Киевляне решили отпраздновать окончание Рождественского поста и один из самых главных православных праздников. Новгородцы, чтобы усыпить бдительность противника, также готовились к празднованию. Именно так можно понять слова посланника Ярослава о приготовленных медовых напитках.
Реликты крупного религиозного праздника сохранились в рассказе из Никоновской летописи, где упоминаются Божьи ангелы, помогавшие воинам Ярослава. Скальд в повествовании о победе под Любечем и награждении викингов говорит:
«Господь Бог, Иисус Христос, был в этом справедлив, как и во всём другом». (2, 109)
Эта фраза свидетельствует о благодарности за помощь в битве, оказанную самим Христом, что может служить косвенным подтверждением того, что сражение происходило на Рождество.