Впрочем, это место летописи нуждается еще в другом объяснении: почему Ярослав так испугался следствий своего поступка с новгородцами? Для чего так жалел об избитии дружины? Ведь она была нужна ему и прежде, ибо он готовился к войне с отцом; для чего же он не подумал об этом прежде убиения новгородцев? Дело объясняется тем, что Ярослав знал о медленных сборах Владимира, о его болезни, которая мешала ему спешить походом, мог надеяться на борьбу Святополка с Борисом, которая надолго оставила бы его в покое. Но теперь дела переменились: Владимир умер, Святополк начал княжить, убил Бориса, послал убить Глеба, хочет бить всех братьев, подобно соседним государям; опасность, следовательно, наступила страшная для Ярослава; сестра писала: «Берегись!» Оставаться в бездействии – значило жить в беспрестанном страхе от убийц, нужно было или бежать за море, или выступить немедленно против Святополка, предупредить его, одним словом, поступить по примеру отца своего Владимира.
После того как новгородцы решились выступить в поход, Ярослав собрал оставшихся у него варягов, по одним известиям – тысячу, по другим – шесть тысяч, да новгородцев 40000, и пошел на Святополка, призвавши имя божие; он говорил: «Не я начал избивать братьев, но Святополк; да будет бог отместник крови братьев моих, потому что без вины пролита кровь праведных Бориса и Глеба; пожалуй, и со мной тоже сделает». Мы слышим здесь те же самые слова, которые летописец влагает и в уста Владимиру, шедшему против Ярополка, с тем только различием, что христианин Ярослав призывает бога в мстители неповинной крови и отдает свое дело на суд божий. Святополк, узнав, что Ярослав идет на него, собрал множество войска из Руси и печенегов и вышел к Любечу; он стал по ту сторону Днепра, а Ярослав – по эту. Ярослав, без сомнения, приплыл в лодках, а Святополк пришел из-за Десны с печенегами. В третий раз Днепр видел враждебное движение Северной Руси на Южную; оба первые раза при Олеге и Владимире сопротивления было мало со стороны юга, но теперь он собрал свои силы, и как север явился с естественными своими союзниками – варягами, так юг соединился с печенегами. Три месяца, а по другим известиям – только три недели, стояли враги по обеим сторонам Днепра; ни те, ни другие не смели перевезтись и напасть. Был в то время обычай поддразнивать врагов, чтоб побудить их начать дело к своей невыгоде. Видя, что главная сила Ярослава состояла из новгородцев горожан и сельчан, воевода Святополков ездя подле берега, бранил новгородцев, называл их ремесленниками, а не воинами. «Эй вы, плотники, – кричал он им, – зачем пришли сюда с хромым своим князем? Вот мы вас заставим рубить нам хоромы». Новгородцев сильно рассердила насмешка, и они сказали Ярославу: «Завтра перевеземся на них, а если кто не пойдет с нами, того сами убьем».
В лагере у Святополка Ярослав имел приятеля, к которому послал ночью спросить: «Что делать? Меду мало варено, а дружины много»; тот отвечал, что пусть Ярослав к вечеру отдаст мед дружине; новгородский князь догадался, что ночью должно сделать нападение. Была заморозь; Святополк стоял между двумя озерами и всю ночь пил с дружиною, а Ярослав перед рассветом исполчил свое войско и перевезся на другой берег, причем новгородцы, высадившись из лодок, оттолкнули их от берега, чтоб отнять у себя всякую возможность к побегу; Ярослав приказал дружине повязать головы платками, чтоб в сече узнавать своих. Враги сошлись, была сеча злая; печенеги, стоявшие за озером, не могли помочь Святополку, который был притиснут с своею дружиною к озеру, принужден вступить на лед, лед обломился, и Ярослав одолел. Святополк бежал в Польшу, а Ярослав сел в Киеве на столе отцовском и дедовском, проживя на севере 28 лет. Новгородцы были отпущены домой и оделены щедро: старосты получили по 10 гривен, смерды – по гривне, а горожане все – по 10.
Но Святополк был жив, и потому Ярослав не мог успокоиться. Для Болеслава польского открылись такие же теперь виды на восток, какие он имел прежде на запад; на Руси, как прежде у чехов, семейные раздоры приглашали его к посредничеству и к утверждению своего влияния, тем более, что теперь Болеслав должен был помочь своему зятю. Он воспользовался благоприятным случаем: по его наущению печенеги напали на Киев; под самым городом была злая сеча; едва к вечеру Ярослав мог прогнать варваров. С своей стороны Ярослав выступил к польским границам, заключив союз с врагом Болеславовым, императором Генрихом II; но поход русского князя кончился неудачною осадою Бреста; поход императора против Болеслава также не удался, он принужден был заключить с ним мир и, желая избавиться от опасного врага, обратить его деятельность на восток, сам советовал ему вооружиться против русского князя. В 1017 году Болеслав выступил в поход, усилив свое войско 300 немцев, 500 венгров и 1000 печенегов, и 22 июля достиг берегов Буга, разделявшего польские владения от русских; Ярослав ждал его на другом берегу с русью (жителями Южной Руси), вырягами и славянами (новгородцами). Здесь повторилось то же явление, какое видели на берегах Днепра у Любеча: воевода Ярославов Будый, ездя по берегу, начал смеяться над Болеславом; он кричал ему: «Вот мы тебе проткнем палкою брюхо твое толстое!» Был Болеслав, говорит летопись, велик и тяжел, так что и на коне с трудом мог сидеть, но зато был смышлен. Не вытерпел он насмешки и, обратившись к дружине своей, сказал: «Если вам это ничего, так я один погибну», – сел на коня и бросился в реку, а за ним – и все войско. Полки Ярослава, вовсе не ожидая такого внезапного нападения, не успели приготовиться и обратились в бегство; Ярослав ушел в Новгород только сам-пять; а Болеслав с Святополком почти беспрепятственно вошли в Киев 14 августа. В городе нашли они мачеху, жену и сестер Ярославовых, из которых за одну (Предславу) сватался прежде Болеслав, получил отказ и теперь в отмщение взял ее к себе в наложницы. Часть своего войска он отпустил назад, другую велел развести по русским городам на покорм. Но и в Киеве повторились те же явления, какие мы видели в Праге у чехов, и, как видно, по тем же причинам. Русские вооружились против поляков и стали убивать их; летописец приписывает это приказу Святополка, но очень вероятно известие, что поляки вели себя и на Руси так же, как в Богемии, и возбудили против себя восстание; очень вероятно также, что и Святополк, наскучив неприятным гостем, слишком долго зажившимся в Киеве на его счет, не был против народной мести полякам. Это заставило Болеслава уйти из Киева; пример чешских событий научил его быть осторожнее в подобных обстоятельствах. Половину войска он отослал домой, разосланные по русским городам поляки истреблены, трудно было противиться, если бы вспыхнуло восстание; притом же, вероятно, он слышал уже о новых приготовлениях Ярослава. Но Болеслав ушел не без выгоды: он захватил себе все имущество Ярослава, к которому приставил Анастаса: хитрый грек умел подольститься к каждому сильному и менял отечество, смотря по выгодам; Болеслав ему вверился лестию, говорит летопись. Польский князь повел также с собою бояр Ярославовых, двух сестер его и множество пленников, взятых в бою; на дороге Болеслав захватил и Червенские города, приобретение Владимира Святого; впрочем, вероятно, что эти города были уступлены ему Святополком в награду за помощь.
Между тем Ярослав, явившись в Новгород без войска, хотел бежать за море; но граждане вместе с посадником Константином, сыном Добрыни, рассекли княжеские лодки, приготовленные для бегства, и объявили: «Хотим еще биться с Болеславом и Святополком». Такая решительность понятна: им нечего было теперь ожидать хорошего от Святополка, а защищаться от него без князя было также невыгодно. Они начали сбирать деньги – с простого человека по 4 куны, со старост – по 10 гривен, с бояр – по 18 гривен, привели варягов, дали им эти деньги, и таким образом у Ярослава набралось много войска, и он двинулся против Святополка; тот был разбит, бежал к печенегам и привел огромные толпы их против Ярослава в 1019 году. Ярослав вышел навстречу и сошелся на реке Альте, где был убит Борис. Место благоприятствовало Ярославу по воспоминанию о преступлении Святополка; летописец говорит, что Ярослав молил бога об отмщении новому Каину. Он же говорит, что сеча была злая, какой еще не бывало на Руси, – секлись, схватываясь, руками, трижды сходились биться, по удольям текла кровь ручьями; к вечеру одолел Ярослав, а Святополк бежал в пограничный польский город Брест, где, вероятно, умер от ран, полученных в битве; по скандинавским преданиям, он пал от руки варяга Эймунда, служившего в войске Ярослава, а по русским, – погиб злою смертию в пустыне между Польшею и Богемиею. Ярослав сел в Киеве, утер пот с дружиною, по выражению летописца, показав победу и труд великий.