Болеслав предложил Ярославу Владимировичу скрепить союз браком с его сестрой Предславой. Одновременно, «с лисьим коварством» (по словам Титмара Мерзебургского), Болеслав вел переговоры и с германской знатью, и тоже отправил сватов к Оде, дочери майсенского маркграфа Эккехарда в Саксонии.
Ярослав же, овладев Киевом, считал себя непобедимым и грубо отказал Болеславу в союзе, как в политическом, так и в брачном. Мало того, Ярослав в первой половине 1017 г. отправил послов к германскому императору Генриху II, чтобы заключить наступательный союз против Польши. Генрих обрадовался русскому посольству, и в том же году была организована первая русско-германская коалиция против Польши. Кроме Руси и Германии в состав коалиции вошли чешский князь Олдржих и племя язычников лютичей.
В 1017 г. Ярослав с войском двинулся к Берестью (Бресту). При этом войско Ярослава прошло через земли древлян. Пройдя Древлянские земли, Ярослав подошел к Берестью. Город к 1015 г. входил в состав Туровского княжества, и там мог находиться как русский гарнизон, преданный Святополку, так и польское войско. Взял ли Ярослав Берестье или нет, неизвестно, но хронист Титмар Мерзебургский кратко написал, что Ярослав, «овладев городом, ничего [более] там не добился». Итак, войско Ярослава вернулось назад. Возможно, это было связано с прибытием печенегов, ведомых Борисом Владимировичем.
Летом 1017 г. Болеслав двинулся с войском навстречу Ярославу. Помимо поляков у него было 300 наемных немцев, 500 венгров и 1000 печенегов. С поляками шла и русская дружина Святополка.
Рати встретились 20 июля 1017 г. на Волыни на реке Буг.
Русские были наголову разбиты. По свидетельству Титмара Мерзебургского: «Тогда пало там бесчисленное множество бегущих». То же говорят и русские летописцы: «И иных множество победили, а тех, которых руками схватили, расточил Болеслав по ляхам». В числе погибших называют и воеводу Блуда (Буду).
Сам Ярослав с четырьмя дружинниками убежал в Новгород. Там он решил бежать в Швецию. Но новгородцы во главе с посадником Константином сыном Добрынин «рассекли ладьи Ярослава, так говоря: “Хотим и еще биться с Болеславом и со Святополком”. Начали деньги собирать: от мужа по 4 куны, а от старост по 10 гривен, а от бояр по 18 гривен. И привели варягов, и отдали им деньги, и собрал Ярослав воев многих».
Между тем бегство Ярослава открыло союзному войску Болеслава путь на Киев. Титмар Мерзебургский пишет: «Добившись желанного успеха, [Болеслав] преследовал разбитого врага, а жители повсюду встречали его с честью и большими дарами». Войско Болеслава шло через Владимир-Волынский, Дорогобуж, Луцк и Белгород. Жители этих городов не оказывали сопротивления и признавали власть Святополка.
В начале августа 1018 г. поляки подошли к Киеву. Дружина Ярослава и наемники-варяги попытались оказать сопротивление. Но Болеслав не спешил со штурмом города, и вскоре защитники Киева сдались из-за нехватки продовольствия. Судя по всему, капитуляция была почетной.
14 августа союзники вошли в город. У собора