В тот же вечер, к ночи, князь приказал своим воинам переправляться на противоположную сторону Днепра*. [* Так в Новгородской Первой летописи: «…а бие того вечера перевозиен Ярослав на ону страну… и тои нощи поидоша на сечю». Согласно же «Повести временных лет», все происходило под утро. Ярослав «заутра исполчив дружину свою, противу свету (перед рассветом) перевезсся и высед на брег». По-видимому, битва все же началась в темноте, может быть, действительно перед рассветом]. Пользуясь кромешной тьмой (дело, напомним, происходило в ноябре или самом начале декабря), а еще больше нераспорядительностью Святополковых стражей, новгородцы сумели выбраться на берег незамеченными. Согласно показаниям позднего Киево-Печерского списка «Сказания о Борисе и Глебе», руководство операцией принял на себя не сам Ярослав, но его воевода Блуд (надо полагать, Буды?), который «справа (то есть выше по течению Днепра? - А. К) прытко чрез реку Днепр переправился с войсками своими»20. Решимость наступавших показывает и такой факт: новгородцы оттолкнули свои ладьи прочь от берега, сознавая, что пути для отступления у них уже нет: их ждали либо победа и честь, либо гибель и бесчестие.
Предусмотрительность Ярослава сказалась еще в одном отношении. Понимая, что ночной бой чреват неразберихой, при которой непросто разобрать, где свои, а где чужие, он приказа своим воинам в знак отличия повязать себе головы «убрусом» (то есть платком, нательной повязкой). В таком виде его воины и ударили по безмятежно спящему лагерю противника.
Завязался жестокий бой. «И сошлись на месте, и бысть сеча за». Замысел Ярослава блестяще оправдался: печенеги, расположившиеся за озером («В заозерье», по выражению позднейшего летописца), не смогли помочь своим союзникам и почти не приняли участия в схватке. «И не бе лзе озером печенегом помагати», - свидетельствует автор «Повести временных лет».
Возможно, некоторые сведения о разгроме Святополкова войска в Любечеком бою отразились в скандинавской «Пряди об Эймунде». Сага рассказывает о том, что Ярослав предпринял обходной маневр: скандинавы отвели свои корабли вверх по реке, скрытно переправились на другой берег и обошли лагерь Святополка (отметим неожиданную параллель с процитированным выше Киево-Печерским списком «Сказания о Борисе и Глебе»). «Мы пойдем отсюда с нашей дружиной и зайдем им в тыл, а шатры пусть стоят пустыми, вы же с вашей дружиной как можно скорее готовьтесь к бою», - торопит Ярослава Эймунд. «Так и было сделано; затрубили к бою, подняли знамена, и обе стороны начали готовиться к битве. Полки сошлись, и начался самый жестокий бой, и вскоре пало много людей. Эймунд и Рагнар предприняли сильный натиск на Бурицлава и напали на него в открытый щит».
Судя по всему, Святополк и киевляне оказали отчаянное сопротивление новгородско-варяжскому войску. Уникальные подробности Любечекого сражения содержатся в «Истории Российской» В. Н. Татищева: «Святополк же не успел всех войск устроить, вышел с частию, колико собраться вскоре могло. И был между ими бой вельми жесток. Но понеже печенеги Святополковы стояли за озерами, для того не могли помочи учинить, а у Ярослава хотя много пало, но из-за Днепра войска приспевалю».
Новгородцы действовали не наобум, но подчиняясь жесткому плану, заранее намеченному Ярославом и его воеводами. Противника оттесняли к ледяным озерам. «И притиснули Святополка с дружиною к озеру, и вступили они на лед, и обломился лед под ними… И видя это, побежал Святополк, и одолел Ярослав». Так рассказывает о кульминационном моменте сражения «Повесть временных лет».
Часть воинов Святополка нашла свою смерть подо льдом полузамерзшего озера. Часть разбежалась по окрестным лесам. Немногие спаслись вместе с князем и в конце концов оказались в Польше. Печенеги, наверное, не дожидаясь конца битвы, устремились в родные степи. «… А печенеги ушли в степи. И тех догоняя, Ярославли воины многих побили. Русских же не велел более побивать, ниже пленить, но велел всем им идти к Киеву в домы своя», - читаем в «Истории» В. Н. Татишева. Если это известие верно, то перед нами важнейшее свидетельство поведения Ярослава уже после одержанной им победы. Конечно, он понимал, что, становясь новым киевским князем, должен принимать под защиту своих вчерашних врагов, становящихся его сегодняшними поданными. Милость, проявленная им по отношению к побежденным, должна была обеспечить ему будущую поддержку киевлян.