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