Узнав, что Святославу Всеволодовичу и Андрею удалось закрепиться на плацдарме, Юрий отступил от Витичева и повел рать к Зарубинскому броду. Когда Изяславу доложили о катастрофе, князь принял решение оборонять Киев и увел рать к столице. Это был крупнейший стратегический успех Юрия, его рать переправилась на правый берег Днепра и сосредоточилась для наступления на Киев. Суздальский князь немедленно послал гонца в Галич к Владимиру Володарьевичу, призывая союзника как можно скорее выступить на Киев. Сам же повел полки на север и занял Белгород. Здесь Юрию следовало дожидаться Владимира Галицкого, но он поступил вопреки здравому смыслу и начал наступление на столицу. Эта ошибка оказалась роковой.
Когда рать суздальского князя подошла к городу-крепости Василев в 50 верстах от Киева, Вячеслав Владимирович попытался выступить в роли миротворца между братом и племянником. Мирные инициативы старика успеха не имели, Юрий продолжил наступление на столицу. Изяслав Мстиславич решил не доводить дело до блокады города, а дать бой прямо под стенами Киева. Если военное счастье склонится на сторону противника, то отступить за линию городских укреплений и продолжить борьбу. Летописец подробно расписал боевой порядок войска Изяслава. Киевский князь с дружиной занял позиции у Золотых ворот, прикрыв боевой порядок обозными телегами, Изяслав Давыдович Черниговский выстроил полки на рубеже от Золотых до Жидовских ворот, Ростислав Мстиславич Смоленский с сыном Романом встали перед Жидовскими воротами. Как пишет летописец, под их стягами было множество воинов, поскольку именно здесь ожидался главный удар суздальцев и их союзников. Гридни князя Бориса Городенского защищали Лядские ворота (45, 296). Между княжескими дружинами стояли пешие и конные отряды киевского ополчения. Всадники-берендеи под началом Владимира Мачешича заняли позиции от Ольговой могилы до Щековицы, ковуи, торки и печенеги прикрыли район от Золотых до Лядских ворот, село Берестовое и Угорские ворота. Ратникам Юрия необходимо было приложить немало усилий, чтобы прорвать такую массированную оборону и выйти к городским стенам. Дополнительными препятствиями на их пути были многочисленные речки, ручьи, овраги и лощины. Изяслав планировал дать сражение от обороны, все преимущества были на его стороне.
Битва на реке Лыбедь. Миниатюра из Лицевого летописного свода
На рассвете воинство Долгорукого подошло к Киеву, противников разделяла только речка Лыбедь. Как обычно, первым в битву вступил Андрей Юрьевич: сын Долгорукого повел в атаку половецкую конницу. Наступление шло со стороны Оболони, где когда-то протекала речка Лыбедь (старое русло давно пересохло, поэтому урочище прозвали Сухой Лыбедью). Следом за двоюродным братом в бой бросился Владимир Андреевич Дорогобужский, однако кормилец не позволил князю принять участие в сражении из-за его молодости (45, 298–299). Половецкие конные лучники открыли плотную стрельбу по боевым порядкам великокняжеской рати, быстро перебрались через урочище и вступили в бой с дружиной Изяслава Мстиславича. Под натиском степняков дружинники отошли к Золотым воротам и укрылись за заслоном из обозных телег. Здесь половецкая атака была остановлена. Тогда Андрей изменил направление главного удара и повел половецкую конницу в сторону Жидовских ворот. Степняки потеснили смоленские полки Ростислава Мстиславича, однако не были своевременно поддержаны Юрием. Ростислав ввел в битву свежие войска, атака половцев захлебнулась, степняки стали уходить за Сухую Лыбедь. Во время отступления Андрей Юрьевич едва не попал в плен, поскольку увлекся рукопашной схваткой и не заметил отхода степняков с поля боя. Всё это время суздальские, ростовские и северские ратники стояли на месте и вели с киевлянами вялую перестрелку.