Патер Фридрих торопился к Анастасу по важному делу. Он получил известие из Новгорода от тамошнего латинского патера, что Ярослав выступает походом на Киев. Патер Фридрих хотел посоветоваться с Анастасом по этому делу и просить его употребить всё своё влияние, чтобы с выступлением Святополка из Киева в поход на Ярослава народ не восстал против Святополка. После совещания с Анастасом патер Фридрих вернулся домой, где застал Якшу.
— Что же мы будем делать? — обратился он к Якше.
— По счастью, — ответил Якша, — недалеко от Киева полчища печенегов. Их князьки хотят вступить в переговоры со Святополком. Святополк послал уже к ним Горясера, обещая исполнить все их желания, но с тем, чтобы они помогли ему в борьбе с Ярославом.
— Но можно ли на них полагаться? И не верю я, чтобы они пришли только для переговоров.
— Конечно, не для приятных и не для выгодных для нас переговоров, и так как у них требования большие, то и пришло их целые полчища. Зная, что Святополк ожидает нападения со стороны Ярослава, они, вероятно, потребуют, чтобы им были возвращены земли, которые отвоевал у них Владимир.
— А посланы ли гонцы к князю Болеславу?
— Святополк уже послал к нему гонцов, вечером пошлёт к Клотильде, а завтра утром к Рейнберну. На случай, если один изменит, а другой погибнет, чтобы известие было доставлено третьим. Но думаю, что из-за ссоры Болеслава с князем нам теперь трудно надеяться на его помощь и потому надо особенно дорожить печенегами.
Переговоры с печенегами окончились успешно для Святополка: те согласились за известные уступки идти с ним на Ярослава. О Ярославе они знали, что это смелый, настойчивый и мудрый князь, а следовательно, для них вовсе не желательный кандидат на великокняжеский стол, да и всякая внутренняя борьба на Руси была для них выгодна. Святополк быстро собрался в поход. Соединившись с печенегами, он двинулся на север.
Когда Святополк был уже недалеко от Десны, приехали гонцы из Кракова с ответом от Болеслава, Клотильды и Рейнберна. Они сообщили, что германский император Генрих II угрожает Польше войной, почему поляки помочь не могут.
У Любеча, куда Ярослав поднялся по Днепру, а Святополк пришёл из-за Десны, братья-враги встретились. Они остановились на противоположных берегах Днепра: их разделяла лишь река. Была осенняя непогода, становилось всё холоднее, воины терпели невзгоды, но ни та, ни другая сторона не решалась вступить в бой.
В лагере Ярослава царила тишина; там часто совершались молитвы, а у Святополка шёл пир горой. Так прошло три недели. Раз под вечер по берегу Днепра в виду новгородцев стал разъезжать и насмехаться над ними один из воевод Святополка:
— Эй, вы, плотники! Зачем пришли сюда с хромым своим князем? Вот мы заставим вас рубить нам хоромы!
— У плотников-то, — отвечали ему новгородцы,- топоры острее. Скоро увидите, как умеем рубить мы топорами, но не хоромы, а ваши головы!
Старшие из новгородцев пошли к Ярославу и сказали ему:
— Завтра пойдём на них, а если кто не пойдёт с нами, тот нам не брат.
Ярослав собрал совет.
— Я, — сказал он, — шёл сюда в надежде, что брат Святослав, князь древлянский, соединится со мной, а между тем, узнав об убиении Святополком праведных Бориса и Глеба, он бежал. Говорят, что Святополк послал вдогонку за ним своих воинов, приказав им убить и его. Итак, браться, у Святополка воинов много, у нас куда меньше, но с нами Бог, мы за правое дело!
— С нами Бог, — отвечали все.
Стали готовиться к бою на следующий день. У Ярослава и его приближённых были друзья в стане Святополка, и Ярослав послал к одному из них спросить: «Что делать? Мёду наварено мало, а дружины много». Последовал ответ: «Дать мёд дружине вечером». К вечеру в стане Ярослава водворилась тишина, нарушаемая лишь тихими церковными песнопениями и молитвами. У Святополка шло, по обыкновению, бражничанье.
Поздним вечером новгородцы стали приготовлять лодки. Было холодно, морозило, но работа спорилась, и чуть забрезжил свет, Ярослав с дружиной переправились на тот берег. Высадившись, новгородцы оттолкнули лодки, отрезав путь себе к отступлению, и стремительно напали на стан Святополка, где нападения не ожидали Скоро, впрочем, Святополк собрал дружину и воинов, и завязалась кровавая сеча. Старый витязь Скала руководил левым флангом войска Ярославова, а воевода Будый правым, сам Ярослав был в середине, стараясь оттеснить Святополка к озеру, находившемуся сзади его стана.
Несмотря на сопротивление, новгородцам удалось прижать Святополка к озеру, которое было покрыто тонким льдом. Воины Святополка бросились на лёд, но он подломился; кто мог, спасался вплавь, многие потонули. Святополк со своими приближёнными переплыл озеро на бывших у них нескольких лодках.