Ярослав на той час княжив у Новгороді. Новгородці, незважаючи на недавнє повстання, нещадно придушене Ярославом, на віче підтримали його боротьбу проти брата. Восени того ж року на Київ рушило ярославове військо, що складалось із 40 тисяч новгородців, більшість із яких були ополченці, та близько 6 тисяч (за іншими відомостями – лише 1 тисяча) найманців- варягів під приводом Еймунда, сина норвезького князя Ринга. Святополк, почувши про похід Ярослава, зібрав військо з киян та покликав на допомогу кочовиків-половців, пообіцявши їм велику здобич; його військо було ще чисельніше.
Обидва війська зійшлися біля міста Любеч. Роль цієї міцної фортеці над Дніпром була не лише в контролюванні певної, підвласної Києву території чи обслуговуванні шляху «Із Варяг у Греки», вгору чи вниз по основній артерії Київської держави. З півночі цей форпост захищав чернігівську і київську землі. Ярослав з новгородцями приплив на лодіях по Дніпру і став на правому березі навпроти Любеча, а Святополк, який прийшов з-за Десни суходолом, став на лівому березі, у місці, де зараз стоїть любецька пристань. Половці ж стали на лівому березі, за Дніпровим затоном — Озером і, таким чином, були відділені від війська Святополка вузькою глибокою протокою. За несторовим літописом, три місяці, аж до осінніх приморозків, обидва війська стояли одне проти одного, не наважуючись перейти Дніпро та напасти на супротивника.
В ті часи був звичай дражнити своїх ворогів, щоб змусити їх першими розпочати битву у невигідному для себе положенні. У князя Святополка був воєвода на прізвисько Вовчий хвіст, відомий тим, що ще за князя Володимира придушив повстання радимичів, розбивши їх на річці Піщані. Цей воєвода почав їздити верхи берегом Дніпра, голосно називаючи новгородців «теслями», князя Ярослава «кульгавим» (у князя одна нога була дещо коротша за другу) і погрожуючи примусити їх будувати киянам хороми: «О ви, плотници суще, что придосте с хромцем сим? А поставим ви хоромом рубати нашим...»
На той час князь Ярослав отримав від своїх вивідувачів у стані Святополка звістку про те, що настала слушна мить для нападу. У новгородців же від глузування Вовчого Хвоста увірвався терпець: «Яко заутра перевеземся на не: аще кто не поидеть с нами, сами того потнем», — заявили вони князю.
Військо князя Святополка стояло між двома озерами: затоном Дніпра, що і зараз зветься Озером, та іншим озером, що зараз зникло, а на його місці лежить болото Кораблище, за Подільницею. Половці — союзники князя Святополка — стояли на іншому, північному березі Озера. Почуваючи себе у повній безпеці, князь Святополк цілу ніч пиячив із своєю дружиною та боярами.
Перед світанком князь Ярослав із новгородцями перепливли Дніпро, відштовхнули човни, щоб позбавити себе можливості до відступу, і вдарили на безпечне святополкове військо. Щоб розрізняти своїх та чужих у темряві, новгородці пов’язали собі голови білими хустками. Незважаючи на раптовий напад, битва була дуже кривавою. Кияни оборонялися завзято, але половці, відокремлені Озером, не змогли прийти їм на допомогу.
Київська дружина, притиснута до Озера, щоб з’єднатися з половцями та врятуватись, ступила на тонку осінню кригу, і багато хто потонув, а разом із ними і хвалькуватий воєвода Вовчий Хвіст. Залишки Святополкового війська ледве врятувалися втечею, а сам князь Святополк втік аж до Польщі, до свого тестя, короля Болеслава Хороброго.
Внаслідок перемоги в Любецькій битві пізньої осені 1015 року князь Ярослав Володимирович зайняв Київ і сів на великокняжий стіл. В 1018 році відбулася битва між військом Ярослава і поляками Болеслава Хороброго. Останні перемогли й 4 серпня увірвалися до Києва. Там вони поводилися як господарі і залишили недобру пам’ять; але вже у вересні повернулися додому. Святополк протримався на великокняжому престолі ще п’ять місяців і у березні 1019 року знову подався у вигнання. Остання спроба повернутися в Київ завершилася розгромом його війська на річці Альта 24 серпня 1019 року. Відтоді Святополк знову відправився до тестя; в Польщі його за невідомих обставин було вбито.
Ярослав Володимирович багато зробив для зміцнення та централізації Київської держави. Згодом народ прозвав його Ярославом Мудрим. Літописці ХVI століття називали князя «Богомудрим» та «Богохранимим», в першу чергу — за його настійливі спроби в розповсюдженні християнства та успіхи в будівництві держави.
Пам’ятками благочестя Ярослава постали збудовані в Києві і Новгороді соборні храми в ім’я святої Софії. А кодекс законів, відомих від загальною назвою «Руська правда», став найзначущим юридичним документом ХI століття, що не поступався європейським аналогам. Великий київський князь доклав чималих зусиль у просвітницькій діяльності; на жаль й до цього часу не знайдена бібліотека Ярослава Мудрого.
1959 року під час розкопок Любецького замку було здійснено спробу разом дослідити і місце Любецької битви. Але нічого знайдено не було. Справа в тому, що у давні часи на місці битви через деякий час не залишалося нічого цінного, в першу чергу зброї. Все підбирали місцеві жителі. Так, на місці Куликовської битви археологами було знайдено лише декілька мечів. Ті ж сліди, що залишилися після Любецької битви, швидко знищили щорічні дніпровські повені.