У Ивана появилась новая семья. Софья родила ему нескольких сыновей и дочерей, старшим был Василий. В то же время у Ивана оставался и старший сын от первого брака — Иван Иванович (Молодой); он скончался в молодом возрасте в 1490 году. Иван Иванович был женат на дочери валашского господаря Стефана Елене (её брат Иван — предок великого композитора С. В. Рахманинова). От этого брака родился сын Дмитрий (так называемый Дмитрий Внук). Таким образом, возникала проблема престолонаследия и начиналась борьба двух направлений: одно ориентировалось на Дмитрия, другое — на Василия. Иван III склонялся больше к первому варианту. Узнав об этом, Софья добыла яд. Сторонники Василия предполагали его бегство на север, в Вологду и Белоозеро. Там княжич должен был захватить великокняжескую казну и начать открытую борьбу. Но заговор был раскрыт, Иван отобрал у жены «зелье», сына запер во дворце, а заговорщиков казнил. 4 февраля 1498 года Дмитрий был торжественно коронован шапкой Мономаха (это первое ее упоминание в качестве государственной регалии) на великое княжение владимирское и московское, то есть официально объявлялся наследником престола. Однако уже в 1499 году Василий был выпущен из-под стражи и объявлен «великим князем, правителем Новгорода и Пскова». В 1502 году по приказу Ивана III Дмитрий Иванович вместе с матерью был схвачен и посажен в тюрьму (Елена Стефановна погибла в тюрьме в январе 1505 года, Дмитрий Иванович был убит в 1509-м, последние годы его держали в «оковах»), а Василий стал полноправным наследником великого князя.
Дочери Ивана III удачно были выданы замуж. Евдокия Ивановна в 1506 году вышла за казанского царевича Кайдулу Ибреимовича, получившего в крещении имя Петр. Некоторое время царевич Петр считался наследником русского престола в случае гибели Василия III (тогда еще бездетного). Одна из старших дочерей Ивана III — Елена — в 1494 году была выдана замуж за великого литовского князя Александра.
Отношения Ивана III с Литвой были непростыми. В 1492 — 1493 годах Иван совершил походы на Литву с целью освобождения некоторых русских городов. По мирному договору с Литвой границы Руси перемещались на запад до Дорогобужа, а в состав русских земель вошла Вязьма. Тогда же московского и литовского князя связали узы родства. В договоре Иван именовался Государем Всея Руси, что ставило его вровень с правителем мощного Литовского государства. Позже Александр стал королем Польши, объединив в своих руках власть над обеими державами. В 1500 году началась новая русско-литовская война, ознаменовавшаяся разгромом литовского войска в битве у реки Ведроши (14 июля 1500 г.) и в битве под Мстиславлем (4 ноября 1501 г.). Затем были освобождены Чернигов, Гомель, Стародуб и другие города. На стороне Литвы в войну включился и Орден, которому не удалось захватить ни Изборск, ни Псков. Смоленск русским войскам взять не удалось. 25 марта 1503 года Иван заключил перемирие с Литвой сроком на 10 лет. В состав Руси вошли все отвоеванные земли, и граница государства Ивана III подошла к Киеву и Днепру. Это было крупным достижением московского государя.
Впоследствии Елена Ивановна, уже будучи вдовой, попыталась уехать на Русь, но новый король Сигизмунд приказал ее арестовать. Она умерла в 1513 году.
При Иване III, входя в круг ведущих государств мира, Русь установила связи с Священной Римской империей и с Османским султанатом. В январе 1489 года в Москву приехал представитель императора Фридриха III Николай Поппель, который предложил Ивану королевскую корону. Таким образом, великий московский князь становился как бы вассалом императора Священной Римской империи наравне с другими европейскими государствами. Но эта сомнительная честь, которой прельстился в годину опасности в свое время Даниил галицкий, была Иваном отвергнута. После свержения ордынского ига Русь не захотела создавать иго новое. В своем ответе, переданном через дьяка Фёдора Курицына 31 января 1489 года, Иван III гордо заявил: «Мы... государи на своей земле изначала, от первых своих прародителей. А поставление имеем от Бога, как наши прародители. (...) А поставления, как есмя наперед сего не хотели ни от кого, так и ныне не хотим». Посольство Фридриха попыталось установить и династические связи, предложив брак дочери Ивана с маркграфом Баденским. Но Иван III считал, что только сын императора может быть ровней его дочери. Однако эти планы не осуществились.
В 1496 году Иван направил в Турцию первого русского посла — Михаила Андреевича Плещеева. Ему был дан наказ только на равных вести переговоры с султаном. В ответной грамоте Баязид II писал о необходимости расширить торговые контакты между обеими державами. Это было началом русско-турецких дипломатических отношений.