Ситуация складывалась так, что после поражения Изяслава владения Мономаха на северо-востоке Руси оказались без защиты. И Олег очень быстро это понял. Он призвал на помощь младшего брата Ярослава, княжившего в Рязани, собрал войска и выступил в новый поход. Олег захватил Суздаль и Ростов, поставил в городах своих посадников и стал собирать дань с региона. После чего задумался о походе на Новгород, где правил сын Мономаха, Мстислав. Это было ошибкой, поскольку Олег ещё не утвердился в Ростово-Суздальской земле. Как и Изяслав, Мстислав был крестником Олега, поэтому он отправил к крестному посланца с просьбой покинуть чужой удел. Вместо ответа Олег начал выдвижение войск на север. Мстислав собрал полки и выступил против крестного.
В начале зимы 1097 г. Олег с главными силами расположился у Ростова, брата со сторожевым полком отправил к устью реки Медведицы, где Ярослав столкнулся передовым новгородским полком под командованием воеводы Добрыни Рагуиловича. Добрыня пленил сборщиков дани, посланных Олегом, выяснил обстановку и стал готовиться к битве с Ярославом. Но рязанский князь не стал вступать в бой, ночью покинул лагерь и ушел к брату. Когда Олегу стало известно о походе Мстислава, то он отступил от Ростова и направился к Суздалю. Это могло быть связано с тем, что ростовские ратники стали массово покидать Олега, чем значительно ослабили его войско. В битве на Кулачце ростовский полк сражался под стягом Мстислава, что косвенно подтверждает данное предположение.
Сначала новгородские полки двигались по покрытой льдом Волге, затем у Углича резко повернули на юг и пошли к Ростову. Некоторое время Олег оставался в окрестностях Суздаля, но когда узнал о продвижении новгородцев, решил отступить к Мурому. Судя по всему, князь не был уверен в своих силах. По приказу Олега воины дотла спалили Суздаль, уцелел только стоявший за городом Печерский монастырь с церковью святого Дмитрия Солунского. Мстислав вступил в сожженный город, но вместо продолжения боевых действий вновь попытался склонить крестного к миру: «Я моложе тебя, обращайся к отцу моему, а дружину, которую захватил, возврати; я же тебе во всем послушен» (31, 239). Когда Олег ответил согласием, Мстислав распустил войска на постой по окрестным селам, поскольку в разгромленном Суздале ратникам негде было расположиться. Новгородский князь недооценил своего крестного, который и не собирался выполнять условия соглашения.
В конце февраля рать Олега скрытно подошла к Клязьме. Весть об этом застала Мстислава врасплох, поскольку доверившись крестному, он даже не выставил дозоры на южном направлении. И здесь Олег допустил ошибку, имевшую необратимые последствия. Вместо того, чтобы воспользоваться неготовностью Мстислава к войне и сразу идти на Суздаль, он решил, что крестник обратится в бегство, как только узнает о появлении муромских полков. И демонстративно остановился на Клязьме. Драгоценное время было упущено, новгородский князь успел подготовиться к битве. До того, как Олег подошел к Суздалю, Мстислав стянул к городу новгородские, ростовские и белозерские полки. Когда Олег осознал свою оплошность и подступил к Суздалю, его встретила готовая к бою рать Мстислава. Противники четыре дня стояли друг против друга, когда новгородский князь получил весть, что ему на помощь идет брат Вячеслав. Как пишет летописец, пришел Вячеслав в четверг после Федорова воскресенья, в пост (31, 240). Князь привел половецкую конницу и привез Мстиславу отцовский стяг.
Земляные валы Суздаля. Фото автора
Владимир Мономах справедливо считается защитником Руси от половецких набегов и борцом со степной угрозой. Но именно Владимир Всеволодович был первым князем, который привел на Русь половцев. Вместе с союзниками-степняками Мономах сжег Минск и впоследствии хвастался в «Поучении», что «не оставили в нем ни челядина, ни скотины» (31, 229). Вот и теперь он обратился за помощью к половцам. Вячеслав привел на помощь Мстиславу степняков, что стало для Олега полной неожиданностью. Но отступать было поздно, поэтому муромский князь решился на битву.
На следующий день Олег повел рать на Суздаль. Город был расположен в излучине реки Каменка, с трёх сторон подступы к нему прикрывались рекой, с четвёртой, напольной, был выкопан глубокий ров. Теперь река замерзла, городские укрепления сгорели, поэтому Мстислав не стал отсиживаться в городе и выстроил полки на сожжённом посаде. Половецкому военачальнику Куную новгородский князь вручил стяг Мономаха, дал под начало отряд пехоты и поставил на правом фланге. Против Олега встали новгородцы и ростовцы под командованием Мстислава, против Ярослава занял позиции Вячеслав с половецкой конницей и белозерским полком. Мстислав перевел рать через пепелище сожженного суздальского посада, когда новгородцы решили слезть с коней и драться в пешем строю. Трудно сказать, почему они это сделали, можно предположить, что за городом лежали большие снега, что и смутило новгородских всадников. Этот эпизод новгородцы вспоминали и сто лет спустя. Перед битвой на Липице 21 апреля 1216 г. они заявили князю Мстиславу Удатному: «къняже, не хочем измерети на коних, н яко отчи наши билися на Кулачьскеи пеши» (26, 56). Новгородцы спешились, Мстислав продолжил наступление. Навстречу двинулись полки Олега. Когда битва началась, муромский князь увидел стяг Мономаха, не разобравшись в ситуации, Олег и его воеводы решили, что здесь находится сам Владимир Всеволодович. В самый разгар сражения Олег заметил, что отряд под стягом Мономаха стал обходить муромские и рязанские полки с фланга, намереваясь зайти в им тыл. Рать Мстислава напирала по всему фронту, над войсками нависла угроза окружения, поэтому Олег не выдержал и бежал с поля боя. Его примеру последовал Ярослав, оставшись без князей, муромские и рязанские полки были разбиты.