Первый отряд под начальством князя Даниила Дмитриевича Холмского и боярина Феодора Давыдовича в числе 10000 выступил в начале июня к Русе; за ним пошел отряд под начальством князя Оболенского-Стриги вместе с Даньяровыми татарами к Вышнему Волочку и потом по Мсте; трое братьев великокняжеских и князь Верейский двинулись с полками каждый из своей отчины. Все эти войска вступили разными дорогами в Новгородскую землю и начали страшно опустошать ее: воеводам велено было распустить ратников по многим местам — жечь, пленить и казнить без милости жителей за их неисправление к своему государю, великому князю. Сам Иоанн выступил 20 июня с главными силами и царевичем Даньяром. 23 пришел в Волок, 29 остановился в Торжке, куда явились к нему воеводы тверские со многими людьми, явились и послы псковские с объявлением, что Псков сложил крестное целование к Новгороду.
К московскому князю приходила помощь с разных сторон; Великому Новгороду не было помощи ниоткуда; король Казимир не трогался; даже князь Михаил Олелькович, услыхав о смерти брата своего, Семена, в Киеве, еще 15 марта уехал из Новгорода да на дороге пограбил Русу и от нее все места до самой границы; другого служилого князя своего, Рюриковича, князя Василия Шуйского-Гребенку, новгородцы отправили на защиту Заволочья; они послали просить помощи у Ордена, и магистр ливонский писал к Великому, что Орден должен помочь Новгороду, ибо если московский князь овладеет последним, то немцам будет грозить большая опасность. Но пока магистры пересылались, московский князь уже успел совершить опасное для них дело: передовые полки его под начальством князя Холмского сожгли Русу 23 июня и на берегу Ильменя, у Коростыни, побили отряд новгородцев, которые, приплыв озером, хотели нечаянно напасть на москвичей; но сзади, на реке Поле, явилась другая новгородская рать; московские воеводы побили и эту, возвратясь от Русы. Легко поверить новгородскому летописцу, что причиной неуспеха его земляков было раздвоение, господствовавшее в их городе: конная рать не пошла к пешей в срок на помощь, потому что полк владычний не хотел ударить на великокняжескую рать, говорил: «Владыка нам не велел на великого князя рук поднимать, он послал нас только на псковичей».
К псковичам в половине июня приехал московский посол понуждать их к немедленному походу. Они отослали складные грамоты в Новгород, а послу сказали: «Как только услышим великого князя в Новгородской земле, так и сядем на коней за своего государя». В Петров день приехал из Русы московский боярин Зиновьев и начал каждый день твердить псковичам: «Садитесь сейчас же со мною на коней, я к вам отпущен от великого князя, воеводой приехал». Зиновьев привел с собою сто человек дружины, и Пскову был большой убыток: много выходило корму на людей и на лошадей. И вот псковичи 10 июля тронулись в поход всем городом и пригородами под начальством сына своего князя-наместника, Василия Федоровича Шуйского, и четырнадцати посадников. Новгородцы, услыхав об этом и безопасные со стороны Холмского, отвлеченного к реке Поле, решили выступить против псковичей и стали собирать огромное войско. Но уже из самого способа, каким набиралось это войско, можно было предвидеть неудачу: приверженцы Литвы, затеявшие войну, силой выгнали в поход плотников, гончаров и других ремесленников, которые отроду и на лошадь не саживались; кто не хотел идти, тех грабили, били, бросали в Волхов. Таким образом набралось тысяч сорок войска и пошло под начальством степенного посадника Димитрия Борецкого по левому берегу Шелони навстречу псковичам; но не с ними оно встретилось. Великий князь 9 июля стоял у озера Коломны, недалеко от Вышнего Волочка, когда Холмской дал ему знать о битве на Поле и о своем движении к Демону; Иоанн немедленно же велел ему идти назад, к Шелони, для соединения с псковичами, а у Демона приказал стоять князю Верейскому. Холмской двинулся назад и 14 июля завидел полки новгородские, шедшие по той стороне Шелони; московские воеводы, несмотря на огромную разницу в числе войска (у них было немного более 4000, а у новгородцев — до 40000), решились вступить в битву: ратники их переправились через реку и ударили на новгородцев, которые не выдержали натиска и побежали; по новгородским же известиям, новгородцы прогнали москвичей за Шелонь, но западная рать татарская внезапно ударила на них и решила дело в пользу войск великокняжеских. Как бы то ни было, новгородцы потерпели страшное поражение, потеряли, по их счету, двенадцать тысяч убитыми и тысячу семьсот взятых в плен; в числе последних находился степенный посадник Борецкий вместе с другими воеводами; в обозе победители нашли и договорную грамоту новгородцев с Казимиром и отослали ее к великому князю.
С другой стороны, псковичи, узнавши, что новгородцы жгут их пограничные волости, выезжая из Вышгорода, осадили это место, начали бить пушками, стрелами стрелять, примет приметывать. Первый день новгородцы крепко оборонялись, но на другой день, видя, что у них нет ни запасов, ни воды, вышли со крестами на заборало и начали говорить осаждающим: «В чем вы изобижены, то ведает государь наш и ваш, князь великий, и Великий Новгород; а вы бы над нами свое милосердие показали, мы же вам животворящий крест целуем», — и отдали весь псковский полон, даже стрелы, собравши их на городе или кругом заборал. Псковичи челобитье их приняли, кровь их пощадили, отступили от городка и занялись опустошением пограничных мест верст на 50 и больше. Не так был счастлив другой полуторатысячный отряд псковичей, собранный из охочих людей, которые отправились на север: за рекой Лютой, притоком Плюсы, ударили на них врасплох новгородцы и разбили наголову; но скоро весть о Шелонском поражении заставила победителей бежать с места победы.
Великий князь получил весть о победе, когда стоял в Яжолбицах, в 120 верстах от Новгорода; отсюда он двинулся к югу и стал против Демона, который сдался князю Верейскому, заплативши сто рублей окупа; от Демона Иоанн пошел к Русе и вступил в нее 24 июля; он ждал послов новгородских с челобитьем, потому что еще из-под Демона отпустил в Новгород гонца, ириезжавшего за опасной грамотой, но вместо того получил весть, что Новгород волнуется по-прежнему. Несмотря на Шелонское поражение, несмотря на то, что здесь литовская сторона лишилась предводителей своих, взятых в плен, несмотря на то, что гонец, посланный к Казимиру для понуждения его садиться поскорее на коня за Новгород, возвратился с печальной вестью, что магистр ливонский не пропустил его через свою землю (если магистру не нравилось господство московского князя над Новгородом, то еще более должно было не нравиться господство литовского князя по тогдашним отношениям обоих орденов к Казимиру), несмотря на все это, когда в Новгороде узнали, что Иоанн в Русе, то встал сильный мятеж, сторожа заняли стены и башни, переменяясь день и ночь, а люди по-прежнему разделились: одни хотели за Москву, а другие — за Литву. Узнав об этом, Иоанн сильно рассердился и велел казнить Борецкого с тремя другими знатнейшими пленниками. «Вы за короля задаваться хотели», — сказал он им. Новгородцы приготовились защищаться, пожегши все посады около города, казнили переветника Упадыша, который с своими единомышленниками пять пушек железом заколачивал; но скоро увидали, что сопротивление не может быть продолжительно: хлеб вздорожал, рожь исчезла на торгу, можно было найти пшеничный хлеб, да и того мало. Тогда потребители ржаного хлеба поднялись на потребителей пшеничного, укоряя их за то, что они привели великого князя на Новгород; это значило, что московская сторона взяла верх, и вот нареченный владыка Феофил с старыми посадниками и житыми людьми поехал бить челом великому князю, который стоял уже при устье Шелони, на Коростыне. Феофил сначала обратился с челобитьем к князьям, боярам и воеводам, чтоб просили за Новгород братьев великокняжеских, а чтоб эти просили уже самого великого князя; митрополит из Москвы также писал, что если новгородцы придут с челобитьем, то чтоб великий князь утолил свой гнев. Иоанн принял новгородское челобитье, велел перестать жечь и пленить и дал мир Новгороду по старине; но за новгородскую проступку взял 15000 рублей деньгами в отчет, а серебром в отвес, кроме того, что передано было братьям великокняжеским, князьям, боярам, воеводам московским за ходатайство. В договоре, заключенном по старине, новгородцы обязались: «За короля и за великого князя литовского, кто на Литве ни будет, от вас великих князей (Иоанна и сына его) нам, вашей отчине Великому Новгороду, мужам вольным, не отдаться никакою хитростью и быть нам от вас неотступными ни к кому; князей нам у великого князя литовского на пригороды не просить и не принимать князей из Литвы в Великий Новгород. А на владычество нам выбирать по своей старине; ставиться же нашему владыке у гроба св. Петра-чудотворца в Москве у вас, великих князей, и у вашего отца митрополита, какой митрополит у вас в Москве ни будет; а в другом месте, кроме Москвы, нам владыки нигде не ставить».
Новгородцы начали переговоры с великим князем, еще не зная о другом своем несчастье: в Двинской области воевода их, князь Василий Шуйский, имея двенадцатитысячный отряд войска, встретился на берегах Двины с устюжским великокняжеским воеводою Образцом и вятчанами, у которых было менее 4000 войска: жаркая битва продолжалась целый день, секлись, схватывая друг друга за руки; двинский знаменщик был убит, знамя подхватил другой, убит был и этот, подхватил и третий, наконец убили и третьего, знамя перешло в руки москвичей, и двиняне дрогнули; князь Шуйский спасся бегством, раненый; новгородский летописец складывает вину поражения на двинян, говорит, что они не тянули по князе Шуйском. С другой стороны, вологодский воевода князя Андрея Васильевича Меньшого повоевал Кокшенгу. Заключая договор по старине, Иоанн возвратил Новгороду его заволоцкие владения, но при этом был сделан строгий перебор, и новгородцы должны были отдать все волости великокняжеские и ростовских князей, захваченные ими прежде и в последнюю войну. Таким образом, многие волости разделились пополам между Москвою и Новгородом, например Емец, Матигоры, Кур-остров, Чухчелема, Ухть-остров, Лисичь-остров; другие, которые прежде мы видели за Новгородом, отошли все к Москве без раздела, например Колмогоры, Ненокса, Уна и проч. Вся земля Новгородская, говорит летописец, до самого моря была пожжена и попленена, потому что опустошали ее не одни те войска, которые были с великим князем или его братьями, но изо всех земель московских ходили толпы за добычею в новгородские волости. Беды не прекратились и по отходе великокняжеских войск: жители Русы, бежавшие в Новгород во время войны, теперь отправились домой по Ильменю; но поднялась страшная буря и потопила их: погибло 90 учанов и 60 малых судов, в одном месте нашли 120 трупов. И не тут только природа объявила себя против Новгорода, за Москву; опасения, что трудно будет идти под Новгород летом по причине многих вод и болот, на этот раз не оправдались; как нарочно, лето было знойное, от мая до сентября не упало ни капли дождя; не было нигде преграды московским ратникам, которые гнали скот по болотам и местам, прежде непроходимым.