25 января новгородские полки расположились на Ждан-горе. Судя по всему, господа новгородцы и мысли не допускали о том, что их может постигнуть неудача. Во-первых, их рать численно превосходила войско Юрия, а во-вторых, они занимали отличную позицию. Ростовцы и суздальцы стояли в низине, и в случае атаки им пришлось бы подниматься по засыпанному снегом склону, под непрерывным обстрелом вражеских лучников. Однако это понимал и Юрий, а поэтому и не отдавал приказ об атаке. Врагов больше, позиция у них лучше, и потому шансы на победу у суздальского князя минимальные. Юрий послал было к Всеволоду гонцов с предложением завершить дело миром, но новгородцы, чувствуя своё превосходство, выдвигали заранее неприемлемые требования.
Долгорукий ожидал вражеской атаки. Он исходил из того, что противник обязательно перейдёт в наступление, поскольку имел такую возможность благодаря численному превосходству. В тылу у полков Юрия находился лес, а перед их фронтом протекала река, и этот рубеж он собирался удерживать. Однако время шло, а враг не двигался. Мороз усиливался, мела поземка, а ратники, нетерпеливо переминаясь с ноги на ногу, замерзали на холодном ветру. И тогда Юрий решился. Призвав воеводу Якуна Короба, он велел ему ночью обойти вражеское войско и, когда начнется битва, ударить врагу в тыл. После этого суздальский князь увел своё продрогшее войско в лагерь. Новгородцы торжествовали, они видели, что враг боится их атаковать, и чувствовали себя очень уверенно на неприступных позициях.
Однако ликование их длилось недолго, поскольку на рассвете 26 января Юрий повел свои полки в атаку. Господа новгородцы были несколько удивлены таким развитием событий, но не растерялись, а быстро изготовились к бою. На правом крыле стал Всеволод Мстиславич с дружиной, на левом тысяцкий – Петрила, а командование над большим полком принял посадник Иванок, муж изрядно опытный в ратном деле. Выждав, когда полки Юрия достигли горы и стали подниматься вверх по склону, новгородцы пошли им навстречу.
Суздальский князь прекрасно понимал, как сильно он рискует, начиная эту отчаянную атаку. Вперед Долгорукий послал лучников, чтобы они отвлекли на себя вражеских стрелков. В завязавшейся перестрелке преимущество было на стороне новгородцев, поскольку они стояли на горе и прекрасно видели все передвижения противника. Лучники Юрия несли большие потери, но продолжали вести сражение, прикрывая наступление своей пехоты. Между тем в бой вступили главные силы. Ростовские и суздальские ратники уже изрядно выдохлись, поднимаясь по склону, когда их атаковали новгородцы. Удар был силен и неотразим. Преимущество новгородцев обозначилось сразу, они смяли дружным натиском передовые вражеские ряды и стали оттеснять противника к подножию горы. Воины Долгорукого бились отчаянно, но не могли противостоять вражескому напору. Ростовские и суздальские полки медленно пятились, сползая вниз по склону, а противник всё наращивал натиск. Посадник Иванок повел своих людей прямо в центр Юрьева войска, разбил боевые порядки неприятеля и прорвался к княжескому стягу.
В рукопашной схватке полегли защитники знамени, и стяг Долгорукого, покачнувшись, рухнул на истоптанный и залитый кровью снег. Новгородцы взревели от восторга, а их противники дрогнули. Но в этот момент ситуация на поле боя изменилась радикально. Воевода Якун Короб сумел-таки незаметно зайти в тыл врагу и неожиданно атаковал с тыла дружину Всеволода. Ратники Короба рубили гридней боевыми топорами, поднимали на рогатины, и те не выдержали. Первым с поля боя побежал сам Всеволод Мстиславич, а за ним стали разбегаться его дружинники. Однако воевода их преследовать не стал, а правильно оценив обстановку, ударил по центру новгородских войск. Посадник Иванок со своими бойцами попытался отразить вражескую атаку, но воины Якуна действовали так дружно и слаженно, что буквально смели всех, кто встал у них на пути. Мертвый Иванок повалился на снег, а ростовцы и суздальцы, воспрянув духом, пошли вперед. Стяг князя Юрия вновь реял над полем боя, его полки наступали на врага несокрушимой стеной.
Когда же был убит тысяцкий Петр Микулич, для новгородцев всё было кончено. Князь убежал, посадник и тысяцкий пали в битве, командовать полками стало некому. Новгородская рать обратилась в бегство. Долгорукий велел преследовать разбитого врага и не давать ему возможности остановиться, чтобы перевести дух и организовать сопротивление. Был захвачен огромный новгородский обоз и взято множество пленных. Победа Юрия Суздальского была полной и безоговорочной.