В эпоху важных государственно-политических преобразований в России в 1497 г. был издан Судебник, вобравший в себя уголовное и частное (гражданское), процессуальное и уголовно-процессуальное, поземельное, торговое, а отчасти и наследственное право. В общей истории права Судебник Иоанна III стал принципиально новым этапом по сравнению с "Русской Правдой" времен Ярослава Мудрого. Многие нормы Судебника в последующем легли в основу обновленного российского права.
В начале 1498 г., еще при жизни Иоанна III, возник спор о наследовании престола. Одни бояре стояли на стороне внука Иоанна Васильевича — Дмитрия (его отец — скончавшийся Иоанн Младый, мать — Елена), другие — на стороне сына великого князя Василия и великой княгини Софьи. Иоанн заподозрил в заговоре свою жену, которая, как говорили, хотела отравить ядом невестку Елену и Дмитрия. После случившегося Иоанн Васильевич с подозрением стал относиться к действиям Софьи. Некоторые участники заговора были казнены.
4 февраля 1498 г. великий князь торжественно венчает на Царство своего внука Дмитрия, которому было тогда 15 лет. Но, несмотря на оказанные Дмитрию знаки любви, Иоанн сомневался в правильности выбора наследника. Он продолжал любить свою вторую супругу, приписывая во многом ей успехи в своих важнейших делах. На следующий год Иоанн помирился с Софьей и сыном Василием. Решили дорасследовать обстоятельства заговора. В итоге Иоанн III посчитал себя обманутым и снова казнил нескольких знатнейших бояр, но уже из числа другой противоборствующей стороны. Василий был объявлен великим князем Новгорода и Пскова.
В 1499 г. Иоанн утвердил свою власть над частью приуральской Северо-Западной Сибири, которая издревле платила дань Новгороду. Еще в 1465 г. новгородцы завоевали Югру (за Уральскими горами). В мае 1483 г. Иоанн отрядил воинов, которые прошли по реке Тавда до г. Искер (Сибирь), оттуда берегом Иртыша до великой Оби в Югорскую землю. Через пять месяцев воины с богатой добычей возвратились в Устюг. Затем снова, но уже в 1499 г., Иоанн организовал поход в Югорские земли. Князья Симеон Курбский и Петр Ушатов взяли 32 населенных пункта, воевода Заболоцкий-Бражник — 8. Поход совершался в трудное зимнее время, но все воины благополучно вернулись в Москву.
Иоанна Васильевича больше всего беспокоили литовские дела. В 1500 г., произошел окончательный разрыв отношений России и Литвы. Великий князь литовский Александр не был ни другом, ни врагом Руси. Он завидовал Иоанну, неоднократно просил его навечно закрепить за Литвой Киев, оскорблял русского великого князя. Елена, дочь Иоанна, сообщила, что в Литве начались гонения на православную церковь. Ни ласки Александра, им его угрозы, ни хитрые убеждения не заставили Елену отступиться от православия. Литовцы умертвили киевского митрополита Макария. Снова часть знатных княжеских семей с вотчинами, с городами Чернигов, Стародуб, Гомель, Любеч, Рыльск и Новгород-Северский перешла к великому князю московскому.
Иоанн III, нарушив договоренность с Литвой о перемирии, объявил Александру войну. Мценск и Серпейск сдались добровольно, недолго смог сопротивляться и Брянск. Вскоре были отвоеваны многие русские земли, находившиеся под властью литовцев. Границы Руси отодвинулись от Калуги и Тулы почти до Киева. Другая русская рать вступила в смоленские земли и взяла Дорогобуж.
Поняв наконец, что Иоанн предпринял серьезные военные действия, Александр вооружился. Предводительствовать войсками поручили Константину Острожскому, потомку славного рода Романа Галицкого. Выбор был хорош. Константин был возведен в гетманы и выступил с войском.
14 июля 1500 г. состоялась кровопролитная битва близ Дорогобужа. С обеих сторон сражались тысяч по восемьдесят воинов. Русские победили. Все главные военачальники противника были взяты в плен. Впервые за 150 лет русские одержали столь блистательную победу нал литовцами. Константин Острожский был вынужден принять условия Иоанна и под большим нажимом присягнул на верность Москве, за что получил свободу и земли. Вскоре пришло известие, что новгородские, псковские и великолукские полки, разбив неприятеля близ Ливонии, взяли Торопец. Смоленск остался за Литвой.
Менгли-Гирей, как верный союзник Иоанна, громил Литву на юге. 15 тысяч татар выжгли Хмельник, Кременец, Брест, Владимир, Луцк, Бряславль, несколько городов в Галиции.
Иоанн хотел подключить к войне против Литвы силы Стефана Молдавского, но тот под различными предлогами уклонился от этого.
Попав в бедственное положение, Александр делал все, что мог: укреплял Витебск, Полоцк, Оршу, Смоленск. Он заключил в 1501 г. тесный союз с Немецким Орденом, но тот, зная силу оружия русских, стал искать с Иоанном мира. В это время Александр одновременно стал польским королем, так как его старший брат Альберт умер. Несмотря на укрепление позиций Литвы, Иоанн решил продолжать войну, и близ Мстиславля русские вновь одержали убедительную победу.
После длительных колебаний Немецкий Орден все-таки согласился воевать против Москвы. Плеттенберг, магистр Ордена, собрав 4 тысячи воинов-всадников и несколько тысяч пехоты, вступил в псковские земли. 27 августа 1501 г. русские войска встретили немцев около Изборска и дали бой. Несмотря на численное превосходство сил Иоанна, русские отступили, так как немцы применили новое оружие — пушки, которые пугали и людей, и лошадей. Вскоре и немцы ушли — в их рядах начались массовые болезни.
Однако Иоанн желал мести. На немцев был послан юный храбрый князь Даниил Щеня — победитель Константина Острожского. Несмотря на осень, русские войска опустошили все селения вокруг Дерпта, Нейгаузена, Мариенбурга, умертвив или взяв в плен около 40 тысяч человек. Князь Щеня со своими войсками дошел почти до Ревеля.
Так как хан Большой Орды Шиг-Ахмет помогал Литве воевать против русских, то крымские татары, союзники Москвы, во главе с Менгли-Гиреем внезапным нападением весной 1502 г. сокрушили остатки батыева царства, о чем торжественно известили великого князя. Шиг-Ахмет бежал в Киев, где король Польши Александр заключил его в темницу. Таким образом, этот последний царь Золотой Орды умер невольником.
В этом же году чуть было не произошел разрыв Иоанна с Менгли-Гиреем. Иоанн, узнав о несправедливых но отношению к Руси действиях казанского хана Абдыл-Летифа, под конвоем доставил его в Московское княжество и посадил в темницу в городе Белоозеро. Крымский хан заступился за сородича, но великий князь опасался выпустить хана Казани из России. В августе 1502 г. войско крымских татар числом 90 тысяч человек опустошило литовские земли: Луцк, Туров, Львов, Бряславль, Люблин, Вишневец, Бельз, Краков. Действуя против польских сил на юге, Стефан Молдавский завоевал на Днестре Галич, Снятин, Красное и тем самым ослабил Польшу. Стефан уже не был близким другом Иоанна и старался проводить свою, независимую политику. С этого времени Русь утратила дружбу с Молдавией. Менгли-Гирей пытался, но не смог примирить обоих выдающихся, но гордых и непреклонных государей. Стефан Молдавский умер в 1504 г. Накануне своей кончины он дал совет сыну Богдану и своим приближенным покориться Оттоманской империи. Богдан признал над собой верховную власть султана, и с этих пор слава Молдавии померкла на многие века.
Иоанн в 1502 г. послал своего сына Дмитрия во главе сильного войска на Литву. Русские взяли Оршу, выжгли предместья Витебска и Мстиславля.
Ливонский Орден вновь выступил с 15-тысячным войском на защиту Александра Польского, и это войско осадило Псков. Русские войска тоже подошли к городу и ввязались в бой, но не так-то просто было одолеть немцев, они бились отчаянно и заслужили даже похвалы противника: русские назвали их железными. Предводитель немецких войск Плеттенберг устоял, но хоть он и считал себя победителем, воспользоваться этим Орден уже не мог.
Да и Польша, испытав на себе силу оружия Московского княжества, неохотно участвовала в этой войне. Сам римский первосвященник, Папа Александр VI, выступил в 1503 г. посредником между Польшей и Русью. Вместо мира условились на перемирие сроком на шесть лет. Иоанн только из уважения к зятю возвратил Литве города Щучье, Рудью, Ветлицы, Святые Озерица.