Тогда Ярослав явился на вече (народная сходка), изъявлял сожаление о своем вероломном поступке с новгородцами и спрашивал: согласятся ли ему помочь. "Хотя, князь, ты и перебил нашу братию, но мы можем за тебя бороться", - отвечали ему.
Новгородцам был расчет помогать Ярославу; их тяготила зависимость от Киева, которая должна была сделаться еще тягостнее при Святополке, судя по его жестокому нраву; новгородцев оскорбляло и высокомерное поведение киевлян, считавших себя их господами. Они поднялись за Ярослава, но вместе с тем поднялись и за себя, и не ошиблись в расчете, так как впоследствии Ярослав, обязанный им своим успехом, дал им льготную грамоту, освобождавшую их от непосредственной власти Киева и возвращавшую Новгороду с его землею древнюю самобытность.
Ярослав выступил в поход против киевского князя в 1016 году с новгородцами, которых летописец считает до 40000; с ним было также до 1000 варягов под начальством Эймунда, сына норвежского князя Ринга. Святополк выступил против него осенью с киевлянами и печенегами. Враги встретились под Любечем и долго (по летописям, три месяца) стояли друг против друга на разных берегах Днепра; ни те, ни другие не смели первые перебраться через реку; наконец киевляне раздражили новгородцев презрительными насмешками. Святополков воевода, выехавши вперед, кричал: "Ах вы, плотники этакие, чего пришли с этим хоромцем (охотником строить); вот мы заставим вас рубить нам хоромы!" - "Князь, - закричали новгородцы, - если ты не пойдешь, то мы сами ударим на них", - и они перевезлись через Днепр. Ярослав, зная, что один из воевод киевских расположен к нему, послал к нему ночью отрока и приказал сказать ему такого рода намек: "Что делать? Меду мало варено, а дружины много". Киевлянин отвечал: "Хотя меду мало, а дружины много, но к вечеру нужно дать". Ярослав понял, что следует в ту же ночь сделать нападение, и двинулся в битву, отдавши такой приказ своей дружине: "Повяжите свои головы платками, чтобы отличать своих!" Святополк заложил свой стан между двумя озерами и, не ожидая нападения, всю ночь пил и веселился с дружиною. Новгородцы неожиданно ударили на него. Печенеги стояли за озером и не могли помочь Святополку. Новгородцы притиснули киевлян к озеру. Киевляне бросились на лед, но лед был еще тонок, и многие потонули в озере. Разбитый Святополк бежал в Польшу к своему тестю Болеславу, а Ярослав вступил в Киев.
Болеслав, прозванный Храбрым, стремился к расширению своих польских владений. Он увидел благоприятный случай вмешаться в междоусобия русских князей для своих выгод и в 1018 году пошел вместе со Святополком на Ярослава. Ярослав, предупреждая врагов, двинулся против них на Волынь и встретился с ними на берегах Буга. Тут опять повторился русский обычай поддразнивать врагов. Кормилец и воевода Ярославов, Будый, ездя по берегу, кричал, указывая на Болеслава: "Вот мы тебе щепкою проколем черево твое толстое". Не стерпел такого оскорбления храбрый Болеслав: "Если вас не трогает такой укор, - сказал он своим, - я один погибну", - и бросился вброд через Буг, а поляки за ним. Ярослав не был готов к бою, не выдержал напора и убежал с четырьмя из своих людей в Новгород.
Болеслав овладел Киевом, не возвратил его Святополку, а засел в нем сам и приказал развести свою дружину по городам. Киев представлял много привлекательного для завоевателей. Дань с подчиненных русских земель обогащала этот город; торговля с Грецией и Востоком скопляла в нем произведения тогдашней образованности. Жить в нем было весело. Болеслав хотел, пребывая в Киеве, править своим государством и отправлял оттуда посольства в Западную и Восточную империю. Но такое поведение скоро раздражило как Святополка, так и киевлян.
Святополк очутился в своем княжении подручником иноземного государя, а поляки начали обращаться с киевлянами, как господа с рабами. Тогда, с согласия Святополка, русские начали избивать поляков. Расставленные по городам, поляки не в силах были помогать друг другу. Болеслав убежал, но успел захватить с собою княжеское имущество и сестер Ярославовых. Он прежде сватался за одну из сестер Ярослава, Предславу, но, получив отказ, в отмщение взял ее теперь к себе насильно.
Тем временем Ярослав, прибежавши впопыхах в Новгород, хотел бежать дальше, за море. Но бывший тогда новгородским посадником Коснятин, сын Добрыни, не пустил его и велел разрубить лодки; новгородцы кричали: "Будем еще биться за тебя с Болеславом и Святополком". Наложили поголовную подать, с каждого человека по четыре куны; но старосты платили по 10 гривен, а бояре по восемнадцати 3 , наняли варягов, собрали многочисленную рать и двинулись на Киев.
Святополк, освободившись от Болеслава вероломным образом, не мог уже более на него надеяться. Не в силах будучи удержать Киев, Болеслав все-таки захватил червенские города, отнятые от Польши Владимиром. Святополк обратился к печенегам: на помощь киевлян, как видно, он также не рассчитывал. Ярослав стал на берегу Альты, на том месте, где был убит брат его Борис. Там, в одну из пятниц 1019 года, на восходе солнца, произошла кровавая сеча. Святополк был разбит и бежал. По известиям нашей летописи, на него нашел какой-то безумный страх; он так расслаб, что не мог сидеть на коне и его тащили на носилках. Так достиг он Берестья (Брест). "Бежим, бежим, за нами гонятся!" - кричал он в беспамятстве. Бывшие с ним отроки посылали проведать, не гонится ли кто за ними; но никого не было, а Святополк все кричал: "Вот, вот, гонятся, бежим!" - и не давал остановиться ни на минуту; и забежал он куда-то "в пустыню между чехов и ляхов" и там кончил жизнь. "Могила его в этом месте и до сего дня, говорит летописец, - и из нее исходит смрад" 4 Память Святополка покрылась позором между потомками, и прозвище "Окаянного" осталось за ним в истории.
Ярослав сел на столе 5 в Киеве и должен был выдержать борьбу и с другими родичами. Полоцкий князь Брячислав, сын брата его Изяслава, в 1021 году напал на Новгород, ограбил, взял в плен многих новгородцев и ушел к Полоцку; но Ярослав догнал его на реке Судомири, отбил новгородских пленников, отнял награбленное в Новгороде, но потом помирился с ним, уступив ему во владение Витебск и Усвят.