Иван Васильевич выступил из Москвы 20 июня, а 28-го был уже в Волоке; на Петров день он пришел в Торжок; сюда прибыли и воеводы тверского князя, князь Юрий Андреевич Дорогобужский и Иван Никитич Жито; сюда же пришли псковские послы с известием, что псковичи сложили к Новгороду крестное целование; великий князь приказал псковичам немедленно выступать в поход… Между тем к Новгороду ниоткуда не являлось помощи: Казимир занят был своими делами; обращались к ордену, но напрасно; надежда на то, что пути к Новгороду — особенно весной и летом — от множества рек, озер, болот и лесов непроходимы, также не осуществилась: лето 1471 г. было до того сухое, что реки обмелели, болота высохли, так что московские рати нигде не встречали препятствий. По дороге московские воины все пленили, все предавали огню и мечу; только татарам, как иноверным, великий князь запретил брать в плен жителей, так как походу придавался характер до известной степени религиозный… Когда московские передовые рати уже далеко проникли в Новгородскую землю, новгородцы отправили к великому князю посла просить опасу, но в то же время против передового московского войска выслали рать. Князь Хомский и Федор Давидович, опустошив все по пути к Гусе, сжегши эту последнюю, пошли далее и остановились на Коростыне между Ильменем и Русой. Не ожидая нападения новгородцев, москвичи вели себя беспечно. Вдруг появилась новгородская рать, и московские полки, наскоро вооружившись, быстро двинулись навстречу новгородцам, многих из них побили, а многих взяли живьем; последним резали носы, уши, губы и в таком виде отпускали в Новгород; забранные у новгородцев доспехи бросали в реку или жгли. После этой битвы воеводы опять повернули к Гусе, где встретили более сильную новгородскую рать, пришедшую р. Полою; но и эта рать была побита, о чем послано было известие к великому князю с Тимофеем Замыцким. От Русы воеводы пошли было к Демону, но великий князь приказал им идти за Шелонь на соединение с псковичами, а под Демоном приказал стоять князю Михаилу Андреевичу Верейскому с сыном его Василием. Между тем новгородцы, узнав о поражении своих ратей, не пали духом: отправив к великому князю другого посла, посадника Луку Клементьевича, они организовали новую рать, тысяч в тридцать, против Даниила Холмского и Федора Давидовича; конница пошла сухим путем, а пехота — озером в р. Шелонь. Враги встретились на берегах Шелони 14 июля: сначала происходили незначительные перестрелки с берега на берег и перебранки; новгородцы, по известиям некоторых летописей, вели себя гордо, посылали ругань в адрес московского войска и даже «на самого государя великого князя словеса некая хульная глаголаху, яко пси лаяху». Нечто подобное могло быть, потому что, надеясь на свою многочисленность, новгородцы могли думать, что московское войско при своей сравнительной ничтожности не посмеет даже и в бой вступить. Несмотря, однако, на неравенство сил, московские воеводы решились на битву: москвичи быстро перебрались на другой берег реки и ударили на новгородцев; новгородские воины, в числе которых находились такие люди, которые не имели никакого понятия о ратном деле: гончары, плотники и пр., не умея владеть оружием, пришли в страшное замешательство, суетились как пьяные, не знали, что делать, и, наконец, обратились в беспорядочное бегство, бросая по дороге копья, щиты и доспехи; они бежали и тогда, когда уже их перестали преследовать: им все слышался победный ясак (лозунг) великокняжеских ратников: «Москва! Москва!» Новгородцы многих потеряли в этой битве: многие пали на месте сражения, многие потонули в Шелони, 1700 человек взято в плен. Невероятно только, будто с московской стороны убит только один. Среди трофеев, доставшихся великокняжеским воеводам, была и договорная грамота Новгорода с польским королем и тот, кто писал эту грамоту. Как первую, так и второго отправили к великому князю с боярским сыном Иваном Васильевичем Замятней. Великий князь находился тогда в Яжолбицах. Воеводы извещали его о решительной победе над новгородцами. Теперь Холмский свободно шел дальше до самой немецкой границы, до Наровы. В то же время Демон сдался Михаилу Андреевичу Верейскому.
Из Яжолбиц великий князь 24 июля пришел в Русу и здесь, возмущенный полученной договорной грамотой Новгорода с Казимиром, «всполеся на лукавыа новгородци» и решил строго наказать взятых в плен в Шелонской битве. Там сложили свои головы сын Марфы Димитрий Исакович Борецкий, недавно возведенный великим князем в сан московского боярина и бывший посадником, Василий Губа, Еремей Сухощок и др. Некоторые из посадников, тысяцких, бояр и простых людей, как Василий Казимер и 50 его лучших товарищей, отосланы в оковах в Москву, а оттуда в Коломну в тюрьму; иных разослали по разным отрядам войск («по станом»), где их «в крепости зело держаша»; «мелких людей» приказано отпускать в Новгород. Отсюда великий князь двинулся к устью Шелони, на Ильмень, куда прибыл 27 июля.