В конце февраля главные силы Олега подошли к Клязьме, а передовые отряды появились в окрестностях Суздаля. Олег Святославич был уверен, что застигнутый врасплох крестник ударится в бега и отступит в Новгород, но просчитался. Вообще, с тех пор, как Олег вторгся во владения Мономаха, удача его покинула. Всё шло не так, как он планировал, князь постоянно ошибался в оценке возможностей противника, что-то не додумывал до конца, в чем-то переоценивал свои возможности. Как видим, и в этот раз он неверно оценил обстановку.
Мстислав спокойно обедал со своими ближними людьми, когда гонец доложил ему о том, что полки Олега перешли Клязьму. Бояре и воеводы сразу заволновались, но князь спокойно продолжил расспрашивать вестника. Ситуация складывалась критическая, поскольку была большая вероятность того, что не удастся стянуть все полки в один кулак. Но и сидеть сложа руки Мстислав не собирался. Гонцы посланы были к войскам, неся воеводам и тысяцким грозное повеление сына Мономаха спешно прибыть в Суздаль. Со всех сторон к городу потянулись войска. Мстислав прекрасно понимал, что Олег поспешил и слишком рано объявил о своем присутствии, и если бы крестный был более предусмотрителен, то захватил бы крестника голыми руками. А так был шанс отразить вражеское нападение. Больше всего молодой князь переживал за те полки, что ушли прикрывать дорогу на Муром. Но обошлось, они успели вернуться, и войска Мстислава вновь собрались под одним стягом. Сын Мономаха велел ратникам закрепляться на валах Суздаля, и хотя деревянные укрепления были сожжены, но тем не менее земляные горы представляли собой серьёзное препятствие для атакующего противника.
Впрочем, и Олег понял свою ошибку, а потому поспешил к городу. Но, приблизившись к Суздалю и увидев, какую крепкую позицию занимают войска Мстислава, он не рискнул отдать приказ об атаке. И это была очередная оплошность князя, имевшая для него роковые последствия. Дело в том, что Мстислав уже был извещен, что отец послал ему помощь и брат Вячеслав ведёт к Суздалю половецкую орду, нанятую Владимиром Всеволодовичем. И поэтому новгородский князь в битву не вступал, а тянул время на своей крепкой позиции, пересылаясь с Олегом гонцами и предлагая крестному заключить мир. Четыре дня две рати стояли друг напротив друга, не предпринимая активных действий. Когда же скрытно подошел Вячеслав, то оказалось, что помимо воинов он привез и стяг Владимира Мономаха. Посовещавшись, братья решили атаковать Олега. Однако Святославич их опередил и нанес удар первым. Но, судя по всему, разведка у него работала из рук вон плохо, поскольку до самого последнего момента он так и не узнал о приходе Вячеслава. А когда узнал, то было поздно.
Была пятница второй недели Великого поста. Ещё до рассвета Мстислав с братом стали выстраивать полки. Старший сын Мономаха не хотел больше прятаться за валами, а потому и вывел ратников на пожарище посада. В центре боевых порядков встал сам Мстислав с новгородцами, на левом крыле — Вячеслав с дружиной, частью половецких наездников и ростовским полком. На правом крыле расположился половецкий воевода Кунуй со своей конницей и пешими ратниками, собранными со всего суздальского ополья. Именно Куную дал Мстислав стяг своего отца. Князь прекрасно понимал, что, увидев над полем битвы знамя Мономаха, которого здесь быть вообще не должно, враг не на шутку встревожится.
Тем временем Олег тоже закончил выстраивать полки. Сам он встал против Мстислава, а против Вячеслава выдвинулся Ярослав. Две рати двинулись навстречу друг другу, полки Мстислава перешли через пепелище, и здесь многие новгородцы сошли с коней, решив сражаться пешими. В это время Кунуй приказал развернуть стяг Мономаха, и огромное полотнище, громко хлопнув на ветру, взвилось над полками новгородского князя. Ни Олег с воеводами и боярами, ни гридни с простыми ратниками в полках братьев Святославичей не ожидали такого. Наступление замедлилось, а потом и вовсе остановилось. Но Олег, понимая, что ничего уже исправить нельзя, взмахнул мечом и повел вперед свою рать.
Два войска сошлись в рукопашной схватке на окраине Суздаля. Крепко билась новгородская пехота, отчаянно рубились конные гридни Олега, с гиканьем налетали на вражеские ряды половецкие наездники. Но вскоре в битве наметился перелом. Дружным натиском новгородцы разбили центр боевых порядков полков Святославичей и развалили их войско надвое. Воины Кунуя в это время отбросили дружину Олега и стали заходить врагу в тыл, расстреливая из луков всё ещё сопротивляющуюся неприятельскую пехоту. Увидев у себя в тылу стяг Мономаха, Олег развернул коня и бросился прочь с поля боя. Видя бегство князя, побежали и его воины. Тем временем новгородцы пошли на полк Ярослава и мощным ударом разнесли его. Теперь бегство врага стало всеобщим. Но Мстислав распорядился беглецов не убивать, а только отбирать у них оружие, в плен же брать только знатных людей.