8 октября вся ханская сила подступила к Угре. Несколько дней шло вялое сражение. Так как силы татар были велики, многие приближенные к Иоанну уговаривали его искать мира, духовенство же, наоборот, призывало к битве. Иоанн послал к хану бояр с предложением о перемирии, но Ахмат требовал, чтобы к нему с покаянием прибыл сам великим князь. Этого делать Иоанн, конечно, не хотел. После того как архиепископ Вассиан обратился к великому князю с патриотическим посланием, он уже больше не думал о мире с татарами, а стал готовиться к сражению.
Две недели прошли в бездействии. Ахмат ждал помощи от литовцев, но она все не приходила. Настали сильные морозы. Русские войска отошли к Кременцу, чтобы сразиться с ханом на удобных для битвы Боровских полях. Татары решили, что русские расставляют им сети, и решили удалиться.
7 ноября представилось изумительное зрелище: два войска, никем не гонимые, бежали друг от друга. Наконец русские войска остановились, огляделись и разобрались в обстановке. Ахмат же ушел восвояси, разорив в Литве 12 городов за то, что Казимир обманул его, не оказав помощи. Так завершилось последнее нашествие Золотой Орды на Русь.
Крымский царевич Нордоулат добросовестно исполнил указание Иоанна, он взял столицу Золотой Орды Сарай, пленил многих жителей и привез большую добычу. Видимо, по этой причине татары и бежали с поля боя, а Иоанн просто тянул время начала битвы, ожидая вестей от Нордоулата. Но некоторые летописцы это предположение не поддерживают.
Иоанн возвратился в Москву. Он не увенчал себя лаврами победы над татарами, но своими действиями утвердил независимость государства. Народ веселился, митрополит установил ежегодный праздник Богоматери и крестный ход 23 июня в память освобождения Руси от татаро-монгольского ига. Наконец-то для русскою народа наступил конец рабства, которое продолжалось свыше 300 лет!
История столетней давности повторилась. Тогда хан Мамай бежал с поля боя и был ограблен своими соотечественниками, теперь Ахмат попал в аналогичное положение. Он вышел из Литвы с богатой добычей, но его уже ожидал Ивак (Ибрагим-Ивак) — хан Шибанских, или Тюменских, улусов, который хотел поживиться награбленным добром. С 16 тысячами воинов Ивак гнался за Ахматом от берегов Волги до Малого Донца, где близ Азова тот остановился зимовать. Ахмат не проявил дальновидности, он распустил свое войско и беспечно проводил время. Однажды Ивак ночью окружил ханскую белую вежу (шатер) и собственноручно умертвил спящего Ахмата, без сражения взял все богатство Золотой Орды, увел к себя жен и дочерей Ахмата.
Ивак объявил великому князю московскому, что его враг лежит в могиле и Золотая Орда исчезла, но сыновья Ахмата именовались еще ханами и держали под своим контролем степи Поволжья. Однако Москва больше не кланялась столице Батыя, которая обратилась в развалины. Хан Ивак также не дерзал требовать от Руси дани. Как ни странно, современники Иоанна были недовольны его политикой по отношению к татарам, осуждали его за якобы проявленное малодушие, поругивали и Софью, что было, конечно, несправедливо.
Иоанн совершил для потомства великое дело. И как пишет Н.М. Карамзин, свержение ига татар «в глазах современников не имело полной чистой славы, обнаружив в нем, по их мнению, боязливость и нерешительность, хотя сия мнимая слабость происходит иногда от самой глубокой мудрости человеческой, которая не есть божественная, и, предвидя многое, знает, что не предвидит всего».
В конце 1480 г. Иоанн предпринял попытку нанести удар и по Немецкому Ордену, так как немцы подошли к Изборску, хотя и не смогли его взять, разорив только окрестности. Затем они сожгли городок Кобылий, умертвили до 4 тысяч жителей, и наконец 20 августа 1480 г. осадили Псков. Немецкое войско насчитывало 100 тысяч человек. Псковитяне мужественно защищались, в результате враг был отбит. Как только войско немцев разошлось по домам, Иоанн направил 12 тысячное ополчение на земли Ордена. К исходу февраля 1481 г. русская рать разделилась на три части: одна пошла к Мариенбургу, другая — к Дерпту, третья — к Вальку. Целый месяц русские войска ходили по ливонским землям: жгли поселения и грабили их, никто не оказывал сопротивления. Весной полки возвратились в Псков, обремененные добычей. Через два года послы Иоанна заключили в Нарве с немцами мирный договор на 20 лет.
С Литвой не было ни войны, ни мира. Иоанн предлагал мир, но в то же время ставил вопрос о возврате русских городов. Литовцы же требовали вернуть им Великие Луки и даже Новгород. В 1482 г. хан Менгли-Гирей попытался заключить мир с Казимиром IV, но Иоанн III разрушил его планы. Осенью 1482 г. хан вошел в литовские пределы и взял Киев. Город был сожжен, народ страдал, а Иоанн одобрил действия крымских татар.
Почти на 200 лет прервались связи Руси и Венгрии, где во времена Иоанна III страной правил Матфей Корвин. Он искал дружбы с Иоанном, так как враждовал с польским королем Казимиром. Страны обменялись посланниками. Великий князь попросил венгерского короля прислать в Москву мастеров, умеющих лить пушки, инженеров (размыслов), горных мастеров, зодчих для строения церквей, художников.
На арене европейских государств появилась новая держава, которая стала объектом большого внимания Иоанна. Речь идет о Молдавском княжестве. Стефан, воевода и господарь Молдавии, опасался турок, литовцев и крымских татар, поэтому обратил свои взоры на Русь. Расположенные к искреннему союзу Иоанн и Стефан хотели утвердить его еще и семейным родством: молдавский господарь предложил выдать свою дочь Елену за Иоанна, старшего сына великого князя. В 1482 г. боярин Михайло Плещеев отправился за невестой и привез ее в Москву. В праздник Крещения Иоанн и Елена обвенчались. Однако, через 8 лет Иоанн умер.
Внутри Московского государства оставалась независимой Тверь. Тверской князь Михаил Борисович, видя опасность подчинения Москве и не желая этого, решил жениться на внучке короля Польши и великого князя Литвы Казимира. Иоанн немедленно объявил войну тверичам (1485 г.). Михаил всеми силами пытался сохранить независимость своего княжества. Великий князь медленно, но последовательно проводил по отношению к Твери свою политику. Многие тверские бояре переходили на службу в Москву. Михаил, не видя иного выхода, написал секретное письмо в Литву, однако это донесение перехватили. 8 сентября 1485 г. войска Иоанна осадили Тверь. Князь Михаил бежал в Литву. Тверь была занята великокняжеским войском, но город не был разграблен. В Твери Иоанн III оставил своего сына Иоанна. Так быстро и просто потеряло самостоятельность Тверское княжество, которое еще со времен Михаила Ярославича именовалось Великим княжеством и долго спорило с Москвой о первенстве. В свое время тверские князья имели до 40 тысяч воинов-конников. Михаил Борисович окончил свои дни изгнанником в Литве, не оставив сыновей.
Ярославль уже давно зависел от Москвы, но его князья еще имели наследственные права. Рязань же больше сохраняла вид независимого княжества: любя сестру Анну, Иоанн позволял ее супругу и сыновьям пока господствовать там независимо.
Новый блестящий успех прославил оружие Иоанна III. Еще в 1478 г. казанский хан, нарушив клятвенные обеты, захватил Вятскую землю. Весной следующего года устюжане и вятичи выжгли селения по Каме, а московский воевода — по берегам Волги. Казанский хан Ибрагим запросил мира, однако вскоре он умер, оставив от разных жен много детей. После братоубийственных стычек ханом Казани стал Алегам, недруг Руси. В 1487 г. Иоанн вынужден был послать на татар сильную рать. Казань была взята, хан захвачен в плен. Но великий князь не решился полностью присоединить к Москве Казанское ханство, ограничившись тем, что к своему титулу он добавил слова «государь Булгарии» и дал Казани своего ставленника хана Магмет-Амина. Алегам с двумя женами был сослан в Вологду, о чем был оповещен Менгли-Гирей.
В 1489 г. Иоанн окончательно утвердил свою власть над Вяткой. В городе действовало правление, аналогичное новгородскому, так как многие его жители были выходцами из Новгорода. Вятский народ, как повествуют летописцы, занимался не только торговлей, но и разбоем. Вместе с Вяткой к Московскому княжеству перешел древний булгарский город Арск.