Князь не хотел прорываться к столице с боями по правому берегу Днепра, где расположились станом печенеги. Поэтому отправил пехоту по реке на ладьях, а конные дружины повел левобережьем. Благодаря этому маневру, великокняжеская рать ночью беспрепятственно вошла в Киев, печенеги при всем желании не могли этому помешать. По свидетельству Софийской летописи, «Ярослав же, великыи князь, собрав вои многы: Варягы и Словени, прииде к Киеву весне и вниде в град с вои, и Печенег бес числа видев» (54, 127). Ярослав разобрался в обстановке и принял решение вступить в битву со степняками. Дав новгородцам и варягам несколько дней отдохнуть после похода, князь начал подготовку к сражению.
Битва началась на рассвете. Полки и дружины покинули Киев и развернулись в боевые порядки перед линией городских укреплений, на месте, где впоследствии будет возведен Софийский собор: «бе бо тогда половина града» (54, 127). Летописец оставил подробное описание боевого порядка рати Ярослава: «И выступи из града, исполчи воя своя, и постави варяги посреди, а на правой стране кияне, а на левой стране новгородцы. И сташа пред градом» (89, 63). Позиция была очень выгодной, поскольку исключала возможность охвата флангов русской рати степняками. Левое крыло великокняжеских полков было прикрыто днепровскими кручами и урочищами, на правом фланге развернуться печенегами мешали Лыбедь и русло Сухой Лыбеди. Поэтому попытка печенегов зайти в тыл противнику была обречена на провал. Ярослав вынудил степняков идти в лобовую атаку и начисто лишил противника возможности маневра, тем самым создав серьезные предпосылки для своей победы.
Битва под Киевом. Миниатюра из Радзивилловской летописи
Битва началась атаками печенежских конных лучников, затем в бой вступили главные силы степняков: «Печенези же приступиша, и начаша стреляти, и съступишася на месте, идже ныне стоит святая Софиа, митрополиа Русскаа» (60, 80). Здесь проявилось преимущество русских пеших ратников и варягов над степными всадниками, тяжеловооруженные пехотинцы отразили атаку легковооруженной конницы и удержали позиции. Варяги в совершенстве владели тактикой ближнего боя, печенеги предпочитали маневренную войну, поэтому исход противостояния был закономерен. Степняки продолжили яростные атаки, потери печенегов были огромны, к вечеру в битве наступил перелом. В бой вступили конные дружины Ярослава, кочевники не выдержали мощного натиска свежих сил противника и обратились в бегство. Страх охватил степняков: «