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