Но вернемся к событиям далекого одна тысяча пятнадцатого года. Пока Святополк расправлялся со своими братьями, Ярослав собирал силы для предстоящего похода на Киев. Разумеется, новгородский князь с самого начала не строил иллюзий по поводу своих дальнейших взаимоотношений со Святополком. Рано или поздно туровский и новгородский князья должны были вступить в ожесточенную схватку друг с другом. Ведь вдвоем им было не ужиться на Руси. Вопрос состоял только в том, кто первым из них перейдет своеобразный Рубикон, отделявший их от междоусобной войны. Первым оказался Ярослав. Стоит ли винить его за это? В сущности, у него не было другого выхода. Новгородский князь прекрасно сознавал, что если он не опередит Святополка и не перенесет военные действия на его территорию, то киевский князь использует промедление Ярослава в своих интересах. Тогда он сам, заручившись поддержкой поляков и печенегов, вторгнется в пределы Северо-Западной Руси. И Ярослав окажется запертым в своем Новгороде.
Осенью 1015 года Ярослав наконец собрал свое войско и выступил против Святополка. Последний также вывел навстречу Ярославу киевскую дружину вместе с присоединившимися к ней печенегами. Противники расположились на противоположных берегах Днепра, и никто из них не решался начать сражение первым. Так они и стояли в течение трех месяцев друг против друга. Когда уже дело близилось к зиме, новгородцы, выведенные из себя оскорблениями какого-то воеводы Святополка, потребовали у Ярослава, чтобы он взял инициативу в свои руки и повел своих воинов в бой. Ярослав, видимо, не желавший распускать свое войско по домам, не добившись победы над Святополком, вынужден был согласиться.
Были уже заморозки. Святополк, расположившийся лагерем между двумя озерами, покрытыми тонкой коркой льда, всю ночь накануне сражения пировал вместе со своей дружиной. Возможно, он даже не догадывался о том, что ранним утром его воинам придется сойтись в жестокой сече с новгородцами.
Под утро, когда еще не рассвело, новгородское войско переправилось на противоположный берег Днепра и ударило на спавшую беззаботным сном дружину Святополка. Началось кровопролитное сражение. Печенеги, отделенные озерами от основных сил Святополка, не смогли оказать ему своевременную помощь. А новгородцы тем временем оттеснили киевских дружинников к озерам. Под весом тяжеловооруженных людей лед треснул. Многие из тех, кто пришел вместе со Святополком, оказались в воде и начали тонуть. Киевский князь бросил остатки своего разбитого войска и, по выражению древнерусского летописца, бежал «ляхы», т. е. в Польшу, к своему тестю Болеславу.