Свою главную дипломатическую задачу Дмитрий решил успешно. Тверскому князю, несмотря на отчаянное сопротивление, пришлось признать верховенство Москвы. Теперь и литовский князь Ольгерд постарался миром уладить свои отношения с Московским князем. Не мешкая, он прислал к нему большое посольство просить «о мире и любви». А чтобы окончательно уверить Дмитрия в своих добрых намерениях, выдал свою дочь Елену за князя Владимира Андреевича.
Казалось бы, наступил долгожданный мир и Дмитрий мог отдохнуть, насладиться тишиной и покоем, но, увы, судьба сложилась по-иному – в нескончаемую борьбу, в цепь походов и сражений. Уже в 1372 году против него выступил Рязанский князь Олег, желавший расширить свои владения за счет Москвы.
Для Дмитрия отношения с Рязанью имели стратегическое значение. В случае успеха он мог расположить здесь свои сторожевые пограничные заставы, которые могли бы на дальних подступах обнаруживать выдвижение конницы золотоордынцев. Это позволило бы ему перейти от пассивной обороны к активным наступательным действиям против степняков.
Стремясь быстрее ликвидировать угрозу с юга, Дмитрий со своей дружиной вступил на Рязанскую землю. Две рати встретились при Скорнищеве, где и произошло решающее сражение. Князь Олег был разбит и спасся бегством. Он вынужден был признать свою зависимость от Москвы и обязался своевременно извещать ее о движении кочевников.
После многолетней борьбы признала свою зависимость от Москвы и Тверь. В сентябре 1375 года Тверской князь Михаил подписал договор, по которому он навечно отказывался от Владимирского великого княжения. Он обязывался также в борьбе с монголо-татарами выступать на стороне Дмитрия: «А пойдут на нас татарове или на тебе, биться нам и тебе с нами с одиного всем противу их. Или мы пойдем на них, и тебе с нами с одиного пойти на них».
Все это свидетельствовало о том, что Дмитрию удалось перед лицом грозной опасности консолидировать силы Северо-Восточной Руси. До Куликовской битвы оставалось чуть более пяти лет. Главной задачей становилась охрана южных границ, чтобы не допустить внезапного нападения ордынцев. Дмитрий уделил этой задаче первостепенное значение, о чем свидетельствует одно из посланий 1378 года митрополита Киприана, в котором он пишет, что на подходах к Москве Дмитрий «поставил заставы, рати сбив и воеводы поставив». Однако князь этим не ограничился. Он создал единую, динамичную систему охраны и обороны южных границ, что позволило ему пресекать все попытки полчищ Мамая прорваться к Москве.
Как талантливый полководец Дмитрий Иванович придавал большое значение разведке. По его указанию далеко в степь, к кочевьям ордынцев, высылались дозоры, которые с ранней весны до наступления холодов, «пока снега землю не укинут», «стерегли татар». На больших шляхах, по которым ордынцы ходили на Русь, выставлялись неподвижные сторожи. Все они связывались единой системой оповещения. Как только в степи обнаруживался противник, гонцы от пограничных сторожей скакали в Москву с тревожными вестями. И тогда Дмитрий приказывал своим воеводам сосредоточить полки по левому берегу Оки, которую москвичи называли «поясом Богородицы». Они преграждали степнякам путь на Москву, а иногда и сами переходили в наступление. Броды на Оке охранялись заставами, а в городах-крепостях Коломне, Серпухове и в Новом Городке Дмитрий держал сильные гарнизоны. Выдвигая свои полки за Оку, он мог не опасаться фланговых ударов и обходных маневров Мамая: «пояс Богородицы» надежно прикрывал его «отчину». До Куликовской битвы великий князь трижды проверил свою оборонительную систему, и каждый раз она с успехом выдерживала испытание.