Не успевши вовремя отвлечь Иоанна от Новгорода, Ахмат пришел к московским границам только летом 1472 года, когда новгородский поход был уже кончен и великий князь мог направить все свои силы в одну сторону. Узнавши, что хан под Алексином, Иоанн велел идти к Оке братьям своим и воеводам и сам немедленно поехал в Коломну, а оттуда в Ростиславль, куда велел следовать за собою и сыну Иоанну. В Алексине было мало ратных людей, не было ни пушек, ни пищалей, ни самострелов, никакого городного пристрою, и потому великий князь велел воеводе алексинскому Беклемишеву оставить город по невозможности держаться в нем, но воевода не хотел выйти из города, не взявши посула с жителей; те давали ему пять рублей, но он требовал шестого для жены, и, в то время как происходила эта торговля, татары повели приступ. Воевода бросился с женою и слугами на другой берег, татары кинулись также в Оку догонять его, но поймать не могли, потому что в это время приспел на берег князь Василий Михайлович Верейский и не дал им переправиться. В тот же день пришли к Оке двое братьев Иоанновых, Юрий из Серпухова и Борис с Козлова Броду, да воевода Петр Челяднин с двором великого князя. Хан велел своим взять Алексин, но граждане храбро оборонялись и побили много татар. Скоро, однако, нечем стало более обороняться, не осталось ни стрелы, ни копья; татары зажгли город, и он сгорел с людьми и добром их; кто же выбежал из огня, те попались в руки татарам. Князь Юрий Васильевич и воеводы стояли на другом берегу и плакали, но помочь не могли по глубине Оки в этом месте. После хан спросил одного пленника: «Куда девались алексинцы? Сгорело их мало и в плен попалось также мало?» Пленник, которому посулили свободу за открытие, объявил, что более тысячи человек со всем добром забежали в тайник, выведенный к реке; татары взяли тайник, и тут уже ни один алексинец не ушел от них. Истреблением Алексина, впрочем, и ограничились все успехи Ахмата; слыша, что сам великий князь стоит в Ростиславле, царевич Даньяр Касимович с татарами и русскими – в Коломне, брат великого князя Андрей Васильевич – в Серпухове, видя перед собою многочисленные полки князя Юрия, как море колеблющиеся в светлом вооружении, хан двинулся назад, в свои улусы. По некоторым же известиям, Ахмат принужден был отступить вследствие моровой язвы, открывшейся в его войске; впрочем, страх Ахматов будет понятен и без моровой язвы, если справедливо известие одного летописца, что у русских было 180000 войска, стоявшего в разных местах на пространстве 150 верст.
После этого, как видно, заключен был мир между Ахматом и великим князем; под 1474 годом встречаем известие о приходе из Орды Никифора Басенка с Ахматовым послом Кара-Кучуком, который привел с собою 600 татар, принадлежавших к посольству, получавших поэтому пищу от великого князя, кроме 3200 купцов, приведших на продажу более 40000 лошадей. В 1476 году приехал в Москву новый посол от Ахмата звать великого князя в Орду; Иоанн отправил с ним к хану своего посла Бестужева, неизвестно с какими речами. Известно только то, что эти речи не понравились; есть известие, впрочем сильно подозрительное, что когда хан отправил в Москву новых послов с требованием дани, то Иоанн взял басму(или ханское изображение), изломал ее, бросил на землю, растоптал ногами, велел умертвить послов, кроме одного, и сказал ему: «Ступай объяви хану: что случилось с его басмою и послами, то будет и с ним, если он не оставит меня в покое». Гораздо вероятнее другое известие, что великую княгиню Софию оскорбляла зависимость ее мужа от степных варваров, зависимость, выражавшаяся платежом дани, и что племянница византийского императора так уговаривала Иоанна прервать эту зависимость: «Отец мой и я захотели лучше отчины лишиться, чем дань давать; я отказала в руке своей богатым, сильным князьям и королям для веры, вышла за тебя, а ты теперь хочешь меня и детей моих сделать данниками; разве у тебя мало войска? Зачем слушаешься рабов своих и не хочешь стоять за честь свою и за веру святую?» К этому известию прибавляют, будто по старанию Софии у послов и купцов татарских взято было Кремлевское подворье, будто София уговорила Иоанна не выходить пешком навстречу к послам ордынским, привозившим басму, будто древние князья кланялись при этом послам, подносили кубок с кумысом и выслушивали ханскую грамоту, стоя на коленях; будто Иоанн для избежания этих унизительных обрядов сказывался больным при въезде послов ханских; но можно ли допустить, чтоб отец и дед Иоаннов подвергались этим обрядам, если даже допустим, что иностранцы, свидетельствующие о них, и сказали полную правду?
Как бы то ни было, вероятно, что Ахмат не был доволен поведением Иоанна и в 1480 году, заслышав о восстании братьев великого князя и согласившись опять действовать заодно с Казимиром литовским, выступил на Москву; летописцы говорят, что и на этот раз король был главным подстрекателем. Получивши весть о движении Ахмата, великий князь начал отпускать воевод на берега Оки: брата, Андрея Меньшого, отправил в Тарусу, сына, Иоанна, – в Серпухов и, получивши весть, что хан приближается к Дону, отправился сам в Коломну 23 июля. Но хан, видя, что по Оке расставлены сильные полки, взял направление к западу, к Литовской земле, чтоб проникнуть в московские владения чрез Угру; тогда Иоанн велел сыну и брату спешить туда; князья исполнили приказ, пришли к Угре прежде татар, отняли броды и перевозы.
В Москве сели в осаде: мать великого князя инокиня Марфа, князь Михаил Андреевич Верейский, митрополит Геронтий, ростовский владыка Вассиан, наместник московский князь Иван Юрьевич Патрикеев с дьяком Василием Мамыревым; а жену свою, великую княгиню Софию (римлянку, как выражаются летописцы), Иоанн послал вместе с казною на Белоозеро, давши наказ ехать далее к морю и океану, если хан перейдет Оку и Москва будет взята. Касательно самого великого князя мнения разделились: одни, приводя непостоянства военного счастья, указывая на пример великого князя Василия Васильевича, взятого в плен казанскими татарами в Суздальском бою, указывая на бедствия, бывшие следствием этого плена, думали, что Иоанн не должен выводить войска против татар, но должен удалиться на север, в места безопасные; другие же, особенно духовенство, и из духовных преимущественно Вассиан, архиепископ ростовский, по талантам, грамотности и энергии выдававшийся на первый план, думали, что великий князь должен оставаться с войском на границах; летописец, оставивший нам подробнейший рассказ о событии, держался того же мнения и сильно вооружался против людей, настаивавших на удалении великого князя от границ, именно против двоих приближенных бояр, Ивана Васильевича Ощеры и Григория Андреевича Мамона. По его словам, эти богатые люди думали только о богатстве своем, о женах, о детях, хотели укрыть их и самих себя в безопасных местах и припоминали Иоанну Суздальский бой, как отца его взяли татары в плен и били; припоминали, что когда Тохтамыш приходил, то великий князь Димитрий бежал в Кострому, а не бился с ханом. Но должно заметить, что летописец, равно как и Вассиан в послании своем, удивительным для нас образом смешивают две вещи: удаление великого князя от войска и бегство целого войска, покинутие государства на жертву татарам, что, по их словам, Ощера и Мамонов именно советовали. Великий князь, оставя войско на берегу Оки и приказавши сжечь городок Каширу, поехал в Москву, чтоб посоветоваться с матерью, митрополитом и боярами, а князю Даниилу Холмскому дал приказ – по первой присылке от него из Москвы ехать туда же вместе с молодым великим князем Иоанном. 30 сентября, когда москвичи перебирались из посадов в Кремль на осадное сиденье, вдруг увидали они великого князя, который въезжал в город вместе с князем Федором Палецким; народ подумал, что все кончено, что татары идут по следам Иоанна; в толпах послышались жалобы: «Когда ты, государь великий князь, над нами княжишь в кротости и тихости, тогда нас много в безлепице продаешь; а теперь сам разгневал царя, не платя ему выхода, да нас выдаешь царю и татарам». В Кремле встретили Иоанна митрополит и Вассиан; ростовский владыка, называя его бегуном, сказал ему: «Вся кровь христианская падет на тебя за то, что, выдавши христианство, бежишь прочь, бою с татарами не поставивши и не бившись с ними; зачем боишься смерти? Не бессмертный ты человек, смертный; а без року смерти нет ни человеку, ни птице, ни зверю; дай мне, старику, войско в руки, увидишь, уклоню ли я лицо свое перед татарами!» Великий князь, опасаясь граждан, не поехал на свой кремлевский двор, а жил в Красном сельце; к сыну послал грамоту, чтоб немедленно ехал в Москву, но тот решился лучше навлечь на себя гнев отцовский, чем отъехать от берега. Видя, что грамоты сын не слушает, Иоанн послал приказание Холмскому: схвативши силою молодого великого князя, привезти в Москву; но Холмской не решился употребить силы, а стал уговаривать Иоанна, чтоб ехал к отцу; тот отвечал ему: «Умру здесь, а к отцу не пойду». Он устерег движение татар, хотевших тайно переправиться через Угру и внезапно броситься на Москву: их отбили от русского берега с большим уроном.