Некогда Орда могла выставить в поле до 200 тысяч всадников. После отделения Крыма, Казани, Сибири, ногайцев численность войск Большой Орды заметно уменьшилась. Ахмат-хан едва ли мог собрать более 30–40 тысяч воинов. Располагая такими силами, он не решился идти к Коломне, чтобы помериться силами с русскими один на один. В Орде не изгладилась память о недавнем бегстве из-под Алексина. Пока Орда маячила в степи поблизости от Дона, Иван III успел собрать немало сил. Независимость от Москвы сохраняли лишь Тверь, Рязань и Псков. Но и они подчинялись приказам из Москвы. Тверской князь прислал войско в помощь Ивану III. Псков должен был позаботиться о своей обороне от «немцев». Хуже оказалось другое. Великий князь вынужден был держать крупные силы в Новгороде, опасаясь боярского мятежа. В условиях начавшейся феодальной смуты любой из московских городов мог подвергнуться нападению со стороны мятежных удельных войск. Пока не минула смута, великий князь мог лишь частично использовать городские ополчения для обороны южных границ.
Более двух месяцев Иван III ждал татар на Оке. Все это время Ахмат-хан провел в полном бездействии вблизи московских границ. Наконец татары, обойдя памятное для них поле Куликово, вступили в пределы Литвы. По словам осведомленного летописца, хан пробыл в Литве шесть недель. Отсюда следует, что Орда пересекла литовский рубеж не позднее 23 сентября. Ахмат-хан не желал повторять алексинскую ошибку, когда ввязался в бой с русскими, не дождавшись помощи от Казимира. Теперь он стоял на территории союзника, и ничто не мешало объединению их сил.
Узнав о движении Орды на северо-запад, Иван III велел сыну и воеводам перейти из Серпухова в Калугу, чтобы прикрыть подступы к столице со стороны Угры. 30 сентября великий князь вернулся в Москву для совета и думы с боярами и высшим духовенством. Согласно отчету официальной летописи, Иван III пробыл в Москве четыре дня, чтобы город «окрепить» и подготовить его к осаде. В столице было собрано «многое множество народа от многих градов». Оборону города Иван III поручил наместнику московскому — главе Боярской думы Ивану Юрьевичу Патрикееву. Духовенство, дума и население умоляли государя «великым молением, чтобы стоял крепко за православное христьянство противу безсерменству». Тем временем Орда придвинулась вплотную к русским границам. Следуя от Мценска на север, Ахмат-хан переправился через Оку к югу от Калуги. Воеводы, не зная в точности, откуда последует удар, расположили свои полки «по Оке и по Угре на 60 верст». Броды, захваченные татарами, находились на территории Литвы, и московских войск там, естественно, не было.
Орда с ее бесчисленными повозками и стадами растянулась на десятки верст. Перейдя Оку вброд, кочевники устремились к Угре, по которой проходила граница между Литвой и Русью. По одному летописному известию, татары появились на Угре в пятницу 6 октября, по другому известию — «октября в восьмой день в неделю в час дни». Оба известия определяют день недели с абсолютной точностью. Как видно, в разных местах Угры татары вошли в соприкосновение с русскими в разное время.
Начавшись во второй половине дня 8 октября, ожесточенные бои на переправах через Угру продолжались четыре дня. Русские, повествует летописец, «сташа крепко» против безбожного Ахмат-хана и «начаша стрелы пущати и пищали и тюфяки и бишася четыре дни». Известия об ожесточенных боях на Угре, по-видимому, застали Ивана III в пути. Вместо того чтобы поспешить к месту сражения, великий князь остановился лагерем «на Кременце с малыми людьми, а (ратных. — Р.С.) людей всех (находившееся при нем войско. — Р.С.) отпусти на Угру».
После завершения боев на переправе началось знаменитое «стояние на Угре», продолжавшееся целый месяц. В дни стояния Иван III, желая выиграть время и дождаться подхода удельных полков, вступил в мирные переговоры с Ордой. С началом переговоров Ахмат-хан отошел от переправ и остановился в Лузе, в двух верстах от берега.
Король Казимир спровоцировал нападение Орды на Русь к своей же беде. Татары оставались на Угре, пока не разграбили всю округу в поисках продовольствия и фуража. Не сумев преодолеть московский рубеж, они отхлынули от Угры и принялись разорять литовские земли. Царевичи и мурзы распустили «облавы» сначала в ближайших уездах (Воротынск, Серенек, Опаков, Перемышль, Козельск), а затем и в более отдаленных местах (Белев, Одоев, Мценск). Некоторые историки усматривают в действиях Ахмат-хана определенный политический смысл. Орда задалась целью усмирить «верховские княжества», где начались антиордынские выступления и назревал заговор князей, намеревавшихся перейти под власть московского князя. В действительности заговор князей имел место много лет спустя. Татары старались не ввязываться в войну с местными князьями. Они «не взя» ни одного из княжеских замков и городков, зато «волости все плени и полон вывели». Ордынцы грабили исключительно деревни, забирали скот и хлеб, а жителей уводили с собой. По словам современников, хан велел отправить полон в Орду «за много дни» до отступления с Угры. Нападения на волости, принадлежавшие союзнику Орды Казимиру, были грабежом и ничем больше.