Для сокрушения Новгородской республики великий князь Московский Иван III предпринимал один сильный ход за другим. Бояре получали достоверную информацию о настроениях новгородского простонародья, о политическом и экономическом потенциале Новгорода, его элиты. Точные разведывательные данные позволили решить проблему привлечения союзников.
Весной 1471 г. великий князь Иван направил своих доверенных воевод на вербовку жителей Вятки и Устюга, которые могли оказать большую помощью в захвате Заволочья. Такая операция ослабляла бы новгородское войско. Миссия воеводы Василия Образца и его помощников увенчалась успехом. Тем временем в окрестностях Москвы срочно собирали конницу и пехоту. С июня московские отряды направились на разорение новгородских владений. К 15 июня 1471 года огню были преданы деревни по течению р. Мета, рать князя Оболенского Стриги и татарского царевича Даньяра стремительно шла на Новгород с востока.
В конце июня через Тверь и Торжок пошли в поход главные силы Московского княжества. Они быстро продвинулись к южному побережья Ильменского озера и захватили Торжок. Сведения о разорении земли поступили к новгородским правителям. В городе стали готовиться к отражению московской агрессии. Новгородцы полагались на пешее войско и судовую рать. Спешно собиралось городское ополчение.
Большого энтузиазма, судя по свидетельствам летописцев, мобилизация населения не вызывала. Простые новгородцы воевать не стремились. Военные историки отмечают, что при значительной численности армии боеспособность новгородцев оставляла желать лучшего из-за стремления жителей покинуть армию как можно скорее. Летом у новгородцев было много других, более важных для хозяйства дел, чем война.
Стратегический план новгородского командования предусматривал разгром московского войска по частям. Потому конные отряды пошли сухим путем по западному берегу озера Ильмень и дальше по левому берегу реки Шелони. Новгород хотел разобщить московское войско и уничтожить его по частям. Основные силы (конницу) новгородцы отправили Битва произошла 14 июля 1471 на левом берегу реки Шелони между московскими войсками и новгородским ополчением на псковскую дорогу. Они хотели не допустить соединения псковичей с отрядом князя Холмского и разбить их.
Судовой рати (пехота) предписывалось десантироваться на южном берегу у села Коростына с задачей уничтожения войск воеводы князя Холмского. Было еще третье новгородское войско, которым командовал князь Василий Шуйский. Его задача отвлекать на себя москвичей у Заволочья. Несмотря на четко поставленные задачи новгородцы не сумели наладить единого согласованного командования. Возможно, сказалась на организации военных действий работа агентуры московского князя.
Немало влиятельных бояр желали власти Ивана Третьего, а потому саботировали решения новгородского командования. Эти же бояре подкупали простых горожан, которые распространяли в Новгороде рассказы о милостивом московском князе. Свое слово «пятая колонна», умело сформированная лазутчиками Ивана, сказала в ходе битва на реке Шелонь.
В преддверии сражения на Шелони у москвичей также не все было в порядке с координацией действий. Их отряды растянулись на пути к Новгороду. Псковичи явно проявляли волокиту и старались держаться в стороне. Главные боевые силы Москвы только накапливались на подступах к главной цели похода. В результате князь Холмский вынужден был принимать главный удар новгородских войск на себя.
Одинокая рать Холмского показалась новгородским командирам достаточно легкой добычей. В окрестностях села Коростына произошла высадка пехоты с кораблей. Воеводы новгородцев задумали охват правого фланга москвичей и одновременную атаку с тыла. Отрезал путь к отступлению воинам Холмского должен был отряд, поднимавшийся на судах по реке Полысть до Старой Руссы. С фронта войска москвичей связывала боем новгородская конница, которая должна была форсировать реку Шелонь. Прекрасно задуманный план выполнялся вяло и неумело. Новгородцы еще только разворачивали боевой порядок, когда Холмский повел своих воинов в атаку на вражескую пехоту у села. Пехота противника была смята.
Воевода Холмский не стал ждать подхода конных ратей неприятеля и ушел к Старой Руссе, все же намереваясь получить подмогу со стороны главных сил. У Русы вновь показались суда со стягами Новгорода. Холмский поспешил вновь ударить на судовую рать. И вновь обрел победу. Конница новгородцев будто и не стремилась участвовать в сражении. Две атаки на пехоту врага обошлись рати Холмского слишком дорого. Погибло почти половина всего личного состава отряда. Холмский направлял князю Ивану гонцов с требованием помощи. Но великий князь в свою очередь требовал немедленно добить противника, настигнуть его конницу.
13 июля 1471 г. Иван III послал отряду Холмского приказ идти к реке Шелони и соединяться там с ратью псковичей. Воевода не смел ослушаться своего властителя. Холмский увидел конные полки новгородцев на Шелони без поддержки пехоты. Бояре Дмитрий Исаакович Борецкий, Кузьма Григорьев, Яков Федоров не спешили ударить на Холмского. Они спокойно велели вести перестрелку через реку. Нерешительность подстегнула Холмского к новой атаке.
14 июля Холмский возглавил общее наступление своей небольшой армии. Московские воины вплавь перебрались через Шелонь, не обращая внимание на стрелы неприятеля. В тыл вышли татары, посланные московским воеводой. Дерзость москвичей. Как писал летописец, изумила новгородцев, они не выдержали атаки с фронта и с тыла, бросились в повальное бегство. По пути новгородские всадники, как отмечали очевидцы разгрома, дрались между собой за коней, за места на переправах через водные преграды. Интересно, что некоторые новгородцы вообще не хотели сражаться, заявляли своим воеводам, что у них нет боевых доспехов или их оружие не в порядке. Копейщики новгородского архиепископа вообще не вступили в бой, сразу повернули коней прочь от Шелони. По пути преследования москвичи забрали в полон свыше 2 тысяч новгородцев. В шесть раз больше было порублено.
Победа князя Холмского была совершенной. Новгородская 12-ти тысячная судовая рать князя Шуйского к Устюгу так и не пробилась. Воевода Василий Образец с войском вятичей и устюжан сразился с превосходящими в три раза силами противника на Северной Двине. Москвичи дрались храбро, а новгородцы при случае не слушали своих командиров, бросались с кораблей, разбегались по берегам.
Шелонская катастрофа сразу дала великому князю Ивану неотразимый аргумент на переговорах с делегацией новгородцев в местечке Коростынь. Епископ Феофан в конце июля 1471 года вынужден был принимать ультиматум московского победителя. В золоченом княжеском шатре униженный владыка едва ли не коленях просил Ивана не губить новгородцев. Московский князь возобновил ранее заключенный договор и постарался приумножить собственные права. Политический строй Новгорода остался прежним. Можно было собирать вече. Боярско-купеческие олигархи допускались до управления. Однако резко ограничивалась политическая самостоятельность, аристократия, которая нацеливалась на сотрудничество с Великим княжеством Литовским, была уничтожена.
Иван III жестоко наказал своих политических противников. В частности, палач срубил голову Дмитрию Борецкому, сыну посадницы Марфы, а с ним за компанию еще трем боярам. Прочих знатных лиц заточили в застенки по крепостям. Жителей Новгорода обязали присягнуть на верность князю Москвы, и выплатить громадную сумму в 16 000 серебряных новгородский рублей. Новгородцев заставили также отдать москвичам части двинской земли. Так завершились события, за которыми последовало падение древней независимости Великого Новгорода. Абсолютная власть военно-феодальной диктатуры московских князей брала верх над новгородскими вольностями.