В 1480 г. ордынское войско двинулось на Москву. В начале октября на границе Литвы и Руси, на реке Угре, левом притоке Оки, началось противостояние сил Ахмата и Ивана II. Летописцы назвали его Стоянием на Угре. Русскими войсками командовали князь Д. Д. Холмский и старший сын Ивана III Иван Молодой. Они вышли на берега Угры на несколько дней раньше противника и хорошо подготовились к обороне. В течение четырёх дней ордынцы безуспешно пытались вброд перейти реку и закрепиться на противоположном берегу. Полководческие таланты московских воевод, эффективное использование огнестрельного оружия, удачное расположение войска позволили отразить атаки ханской армии. Армия Ахмата к зиме была не готова, на новый штурм хан так и не решился. A Казимир со своим войском на берега Угры не пришёл. Он был отвлечён набегом крымского хана Менгли-Гирея - союзника московского князя. Одновременно московский отряд вместе с крымским царевичем Нур-Девлетом разграбили столицу Большой Орды Сарай. Ахмат был вынужден отвести свои войска.
При Иване III к Московскому государству были присоединены следующие земли: Тверское княжество, Новгородская земля. По договорам 1494 и 1503 гг. Литва вынуждена была смириться с утратой многих городов, в том числе Брянска, Вязьмы, Дорогобужа, Новгорода-Северского, Стародуба, Чернигова. На далёком севере Иван III постепенно подчинял себе земли, которые раньше находились под контролем Новгородской республики. В 1489 г. в состав его владений вошли вятские, пермские и югорские земли. Границы государства раздвинулись вплоть до Западной Сибири.