Гонцы из Киева нашли в степи, на реке Альта дружину Бориса, который, не обнаружив печенегов, готовился вернуться обратно в Киев. Близкие к Борису люди уговаривали молодого князя повести дружину на Киев и взять власть, завещанную ему отцом. Однако Борис отказался сделать это, то ли руководствуясь нравственными мотивами и не желая нарушать порядок престолонаследия, установленный ранее (именно на этом настаивают древние источники, подчеркивая безупречный, истинно христианский облик Бориса), то ли опасаясь штурмовать Киев, где Святополк уже успел собрать достаточно сил и сплотить своих сторонников.
Говоря о характере Бориса, следует заметить, что он не был таким непротивленцем, каким его рисуют позднейшие источники, созданные уже после канонизации Бориса и Глеба Русской православной церковью. Отец поручил ему командование войском, доверял свою дружину, и уже сам этот факт говорит о многом, во всяком случае может представить нам Бориса, который к тому же долгое время сидел на княжении в Ростове, как решительного и опытного князя.
Получив от Бориса отрицательный ответ, дружина разошлась по домам: для опытных воинов и политиков было ясно, что отныне все люди, близкие к Борису, да и он сам будут обречены.
Святополк не сразу пошел на организацию заговора против Бориса, а лишь после того, как до него дошли сведения, что дружина и «вои» покинули Бориса и он остался на Альте лишь с небольшим отрядом телохранителей, «съ отроки своими». Святополк собрал в вышгородском дворце своих сторонников; там же и был сформирован отряд убийц во главе с боярином Путшей, которые обещали князю сложить за него голову.
Когда отряд Путши поздним вечером появился на Альте, Борис уже был извещен о намерении Святополка убить его. Однако он либо не мог, либо не стал сопротивляться. Убийцы застали его в шатре, молящимся перед образом Христа.
Борис был убит, когда лег спать: нападавшие бросились к шатру и пробили его копьями в том месте, где находилась постель князя. Затем они разметали малочисленную охрану, завернули тело Бориса в шатер и повезли к Святополку. В Вышгороде убийцы обнаружили, что Борис еще дышит. По приказу Святополка верные ему варяги добили Бориса. Так Святополк убрал со своего пути самого опасного соперника, действуя решительно, быстро и жестоко.
Но оставался еще муромский князь Глеб, рожденный, как и Борис, в христианском браке Владимира от византийской принцессы и бывший теперь единственным законным наследником престола. Святополк направил к Глебу гонцов с просьбой прибыть в Киев, так как отец тяжело болен. Ничего не подозревавший Глеб с небольшой дружиной отправился в путь — сначала на Волгу, а оттуда к Смоленску и затем в ладье в Киев. Уже в пути он получил известие о смерти отца и убийстве Бориса. Глеб остановился и пристал к берегу. Здесь, на полпути к Киеву, на Днепре, и застали его люди Святополка. Они ворвались на корабль, перебили дружину, а потом по их приказу повар Глеба зарезал его ножом.
Смерть юных братьев поразила древнерусское общество. Борис и Глеб со временем стали символами непротивления злу, праведности, добра и мученичества во славу светлых идей христианства. Оба князя были в XI в. объявлены православной церковью первыми русскими святыми, намного ранее княгини Ольги и князя Владимира.
Святополк уничтожил и еще одного из братьев — Святослава, который правил в древлянской земле и, спасаясь от беспощадного Святополка, бежал в Венгрию. Убийцы настигли его в пути.
Теперь друг против друга вновь встали Киев, где окончательно утвердился Святополк, получивший в народе прозвище «Окаянного», и Новгород, где оставался Ярослав Владимирович. Теперь он вел на Киев сорокатысячную рать. Перед тем как выступить в поход на юг, Ярослав, по свидетельству летописи, рассорился с новгородцами. Варяги, появившиеся по его призыву еще до смерти Владимира, начали чинить насилия и притеснения новгородцам, и те «иссекли» часть варягов. В ответ Ярослав расправился с «нарочитыми мужами», т. е. видными новгородцами. Каково же было чувство соперничества Новгорода по отношению к Киеву, если даже после этого, получив известие о смерти Владимира и узнав о вокняжении в Киеве после убийства других братьев Святополка, новгородцы откликнулись на призыв Ярослава и собрали значительную рать?! Поистине Север вновь поднялся против Юга, как это было уже не раз в истории Руси. Святополк выступил навстречу Ярославу с киевской дружиной и нанятой печенежской конницей.
Противники встретились на Днепре ранней зимой 1016 г. близ города Любеча и встали на противоположных берегах реки.
Ярослав атаковал первым. Ранним утром на многочисленных ладьях его рать переправилась на противоположный берег. Зажатые между двумя уже замерзшими озерами, воины Святополка пришли в замешательство и вступили на тонкий лед, который стал ломаться под их тяжестью. Печенеги, ограниченные в своих маневрах рекой и озерами, никак не могли развернуть свою конницу. Разгром Святополковой рати был полным. Сам великий князь бежал в Польшу.