Союзная рать имела подавляющий численный перевес над киевскими полками. Мстислав Андреевич не стал повторять ошибок деда, не сумевшего организовать четкое взаимодействие войск во время штурма Киева, он знал, что именно этот просчет привёл Долгорукого к поражению. Мстислав Андреевич действовал иначе и сделал ставку на штурм столицы с разных направлений. Он понимал, что у Мстислава Изяславича не хватит сил отражать несколько атак одновременно. Киевский князь оказался без союзников, лишь черные клобуки предоставили свои отряды в его распоряжение. Мстислав Андреевич и его союзники не понаслышке знали, насколько ненадежны эти воины, не раз предававшие киевских князей ради собственных выгод.
Штурм Киева начался 10 марта, полки союзных князей покинули боевой стан и начали приближаться к валам столицы. Наступление развивалось медленно, пешие ратники месили ногами рыхлый весенний снег, кони проваливались по брюхо в осевшие сугробы. Приблизившись к городским укреплениям, воины стали бросать в ров огромные вязанки хвороста. Со стен и башен били стрелами, бросали копья и сулицы, однако потери не остановили атакующих, работы около рва продолжались всё утро. Как только ров оказался завален, тысячи ростовских, суздальских, владимирских, смоленских, северских, муромских и рязанских ратников пошли в атаку. Прикрываясь от стрел большими щитами, воины тащили осадные лестницы и веревки с железными крюками. Быстро преодолев ров, они достигли подножия вала и по крутым откосам стали подниматься наверх. Со стен полетели глыбы льда, камни, бревна, тележные колеса, но волну атакующих было не остановить. Сотни крюков впились в двускатные кровли, сотни лестниц были приставлены к бревенчатым стенам. Союзники устремились на боевые площадки, киевляне отложили в сторону луки и схватились за топоры и мечи.
Закипело яростное сражение, железное кольцо невиданной доселе битвы охватило Киев. Противники рубились в узких переходах и на двускатных кровлях, у городских ворот и внутри деревянных башен. Мстислав Андреевич постепенно наращивал натиск, отправляя в битву всё новые и новые отряды, однако киевляне бились люто и отразили все вражеские атаки. Поскольку успех не приходил, а потери росли, Мстислав Андреевич приказал трубить отступление. Молодой князь не отчаивался, он знал, что враг будет яростно сражаться, поэтому упорное сопротивление защитников его нисколько не смутило. Когда на землю спустились сумерки, союзники ушли в лагерь, киевляне сумели удержать весь периметр укреплений.
На рассвете полки союзных князей вновь пошли на приступ. К воротам подтащили сколоченные за ночь навесы, под их прикрытием ратники стали разбивать дубовые створы. В этот момент дрогнули черные клобуки. Их предводители видели, какую многочисленную рать привели князья под стены Киева. Оценив соотношение сил, они сделали вывод о бессмысленности сопротивления. Следующий их шаг был вполне логичным и укладывался в русло практиковавшейся политики: черные клобуки вступили в тайные переговоры с Мстиславом Андреевичем и изъявили желание перейти на его сторону. Пока представители черных клобуков и союзной коалиции обсуждали условия сдачи, битва за Киев продолжалась. Горожане и дружинники Мстислава Изяславича стояли крепко, успешно отражали вражеские атаки, сбивая мечами и палицами воинов противника с боевых площадок. К вечеру стало ясно, что Киев вновь устоял. Полки союзников отступили от городских валов и расположились на отдых. Мстислав Изяславич торжествовал, но всё было не так однозначно, как казалось на первый взгляд. Защитники Киева несли тяжелые потери, им всё труднее было отражать вражеский натиск. Массированная атака по всему фронту изматывала киевлян, изнемогавших в неравной борьбе. Мстислав Изяславич изначально допустил роковую ошибку, выбрав неправильную стратегию в войне с Андреем Боголюбским. И теперь за неё расплачивался весь Киев.
Опыт – великая вещь. На военном совете союзники вспомнили, как действовал Изяслав Мстиславич во время сражения за Киев в 1151 г.: он выделил из всех полков определенное количество бойцов, создал мощный резерв и не нарушил при этом общего построения войск. Было предложено воспользоваться наработками киевского князя. Вряд ли Мстислав Андреевич додумался до этого сам, скорее всего, эту мысль ему подсказал кто-либо из старших товарищей по оружию. Тот же дядя Глеб, например. Обсудив предложение, союзные князья решили создать резерв и в решающий момент ввести его в сражение. Командовать сводным отрядом поручили Глебу Переяславскому. Князь незаметно вывел своих людей из лагеря и расположил в засаде у Сереховицкого ручья.
Решающая атака на Киев началась 12 марта. Десять князей повели на город полки и дружины, одиннадцатый внимательно следил за развитием событий и выжидал удобный момент для нанесения удара. Когда натиск союзников стал неудержим, Мстиславу Изяславичу пришлось снимать войска с других участков обороны и перебрасывать их на места возможного прорыва вражеских войск. Глеб понял, что пришел его час, и по рву незаметно подвел войска к городским стенам. Гридни и ратники тихо поднялись на укрепления, разбежались по стенам и стали рубить защитников, не ожидавших атаки с тыла. Лучники заняли позиции на башнях и боевых площадках, откуда стали поражать стрелами воинов Мстислава Изяславича. Киевляне дрогнули и стали покидать близлежащие улицы.
Штурм Киева. Миниатюра Лицевого летописного свода.
Узнав о вражеском прорыве, киевский князь повел дружину в контратаку. На прилегающих к валам улицах закипели рукопашные схватки, противники сражались на стенах и башнях «города Ярослава». Воины Глеба начали отступать, Мстиславу Изяславичу показалось, что ещё немного и враг будет выбит из Киева. Но ситуация вновь резко изменилась. Воспользовавшись тем, что киевский князь увел дружину на другой конец города, Мстислав Андреевич усилил натиск на вражеские позиции. Войска союзных князей пошли на решительный приступ, сломили сопротивление защитников и прорвались в город. Победители разбежались по улицам Киева, занялись первые пожары. Мстислав Изяславич продолжал теснить отряд Глеба, когда ему доложили, что враг прорвался в город. Весть поразила князя, как удар грома. Развернув дружину, он поспешил к оставленным позициям, но было уже поздно, начался разгром киевских полков.
Гридни Мстислава Изяславича бились отчаянно, однако изменить ход битвы были не в состоянии, отряды союзников обкладывали Мстислава Изяславича со всех сторон. В яростных схватках гибли лучшие княжеские бойцы, дружинники не выдерживали накала боя и всё чаще поглядывали в сторону городских ворот. Понимая бесперспективность дальнейшего сопротивления, они обратилась к князю: «Что, княже, стоиши? поеди из города; нам их не перемочи» (8, 372). Мстислав Изяславич и сам уже осознал, что его дело проиграно, что пришло время спасать свою жизнь и остатки дружины. Киевский князь вывел дружину из боя и сосредоточил недалеко от Золотых ворот, поскольку решил прорываться в сторону Василева.
Пропела труба, гридни пришпорили коней и устремились в последнюю атаку. Бегущие навстречу вражеские воины были втоптаны в снег копытами лошадей, прижавшиеся к заборам ратники были иссечены мечами и боевыми топорами. Прорубившись сквозь ряды противника, дружина Мстислава вырвалась из-под арки Золотых ворот и стала уходить по дороге на Василев. Пришел час черных клобуков, погоню за Мстиславом Изяславичем возглавил изменивший киевскому князю Бастий. Лихие наездники на полном скаку поражали стрелами гридней Мстислава, сбитые с коней дружинники один за другим летели в снег. Свистели арканы, вырывая из седел княжеских приближенных, сверкали сабли, без устали опускавшиеся на спины беглецов. В плен попало множество Мстиславовых бояр и воевод, среди них Дмитрий Храбрый, Олекса Дворский, Сбыслав Жирославич и Иван Творимирич (8, 372). Разгром был сокрушительный, Мстислав Изяславич бросил семью на произвол судьбы и бежал во Владимир-Волынский. Киев пал. Началась агония поверженной столицы.