Поздним вечером новгородцы и варяги сосредоточились на берегу Днепра. Чтобы в темноте отличить своих товарищей от вражеских воинов, новгородцы по приказу князя обмотали головы белыми платками. Новгородские полки и варяжские дружинники погрузились на ладьи и драккары, переправились через Днепр и беспрепятственно высадились на берег. Чтобы отрезать себе путь к отступлению, новгородцы оттолкнули от берега ладьи и насады. Киевляне не ожидали нападения. Разведка у Святополка работала плохо, киевский князь был уверен, что новгородцы в ближайшие дни не будут переправляться через Днепр. Святополк устроил пир для своей дружины, вражеская атака застала князя врасплох. Несмотря на это, киевляне бились отчаянно: «И бысть сеча зла, оже за рукы емлющеся сечаху и по удолием кровь течаше» (26, 175). Святополку удалось сплотить своих людей, однако в этот момент в бой вступили варяги: «и напали на него в открытый щит. Был тогда жесточайший бой, и много людей погибло, и после этого был прорван строй» (40, 109). Разбитые киевляне отступили на замерзшее озеро, хрупкий лед подломился, дружинники Святополка стали тонуть в полыньях. Положение могла спасти печенежская конница, однако между степняками и киевлянами находилось озеро: «и бысть сеча зла, и не бе лзе озером помогати печенегом» (60, 75). Разгром киевлян произошел раньше, чем степняки смогли принять участие в битве. Печенеги не рискнули вступать в сражение, быстро покинули поле боя и ушли в степь. Святополк потерпел сокрушительное поражение.
Как полководец Ярослав проявил себя с самой лучшей стороны. Новгородский князь проявил выдержку, дождался удобного момента, грамотно спланировал атаку и нанес неотразимый удар по врагу. Большую роль сыграла и хорошо организованная разведка. Святополк вел себя безответственно, поэтому исход противостояния был закономерным. По итогам битвы у Любеча Ярослав вступил в Киев, Святополк бежал в Польшу. Князь лишился поддержки на Руси, теперь все его надежды были на помощь польского короля Болеслава I.
6. Битва на реке Альта (1019)
Попытка Святополка утвердиться на Руси с помощью поляков потерпела крах, хотя сначала князю сопутствовал успех. Ярослав был разбит поляками и бежал в Новгород, но когда ляхи разграбили Киев и ушли, Святополк оказался без союзников. Киевскому князю стало известно, что Ярослав вновь собрал в Новгороде полки, нанял варягов и выступил в поход на юг. Сопротивляться двоюродному брату у Святополка возможности не было, его дружина была слишком малочисленна, чтобы встретиться с новгородцами и варягами на поле боя.
Битва на реке Альта. Миниатюра из Радзивилловской