В 1369 году Дмитрий уже сам пошел войной на Ольгерда и разгромил союзные ему Смоленское и Брянское княжества (война 1368–1375 годов Москвы с Тверью и Литвой). В ходе ее тверской князь несколько раз получал ярлык на великое княжение и объявлял себя "старшим" среди русских князей, но в конечном счете верх одержал все-таки Дмитрий. Успех молодого московского правителя объяснялся мудрой поддержкой митрополита Алексия, помогавшего своему воспитаннику в деле объединения под его "рукой" суздальскоих, нижегородских, серпуховских, городецких, белозерских, кашинских, стардубских, тарусских, новосильских, смоленских, ростовских, ярславских и новгородских ратей. В 1375 году Дмитрий разбил под Любутском литовское войско Ольгерда. Ордынская помощь Ольгерду вовремя не пришла, и Михаил Тверской, "видя изнеможение свое, понеже вся Русская земля возста на него", просил вместе со своим зятем Ольгердом у Дмитрия мира. Договором 1375 года между Тверью и Москвой тверской князь низводится до положения "младшего брата" великого князя московского и навсегда отказывался от притязаний на великое княжение и согласился на союз с Дмитрием против Золотой Орды.
В 1376 году Московское княжество утвердило свое влияние в Волжско-Камской Болгарии, начало переговоры с Великим Новгородом об урегулировании торговой деятельности. В результате этих переговоров Москва открыла свободный пропуск новгородских товаров в своей земле, заручившись согласием новгородцев в случае нового конфликта с Тверью стоять на стороне Москвы. В том же году в спорах о границах Московского и Рязанского княжеств Дмитрий вновь вышел победителем, разгромив под Скорнищевом рязанского князя Олега Ивановича.
В 1377 году на Суздальское княжество, где правил тесть Дмитрия, напал ордынский царевич Араб-Шах (Арапша). Спасая родственника, Дмитрий направил туда московское войско и тем самым первым из русских князей начал открытую борьбу с ордынцами. Однако первое столкновение с ними оказалось неудачным для русских: по преданию, ордынцы разбили упившихся русских воинов, не ожидавших нападения врага, и река, на которой они расположились лагерем, получила поэтому название "река Пьяни". Вслед за тем татары опустошили нижегородские и рязанские земли, а царевич Арапша провозгласил себя ханом Золотой Орды.
В 1378 году Дмитрий, лично командовавший отрядом воинов, разбил на реке Воже большой отряд ордынцев под водительством татарского мурзы Бегича. Это была первая военная победа русского оружия над ордынцами, в ней также прославились воеводы Даниил Пронский и Тимофей Вельяминов.
Испугавшись усиления московского правителя, ордынский темник (командовавший "тьмою" – 10 тысяч воинов) Мамай решил сломить возраставшую мощь Руси, усилить ее зависимость от Орды. Он собрал войско (100–150 тысяч), в которое, помимо монголо-татар, входили также отряды черкесов, осетин, армян, некоторых народов Поволжья, наемные отряды крымских генуэзцев, вступил в союз с литовским князем Ягайло и великим князем рязанским Олегом Ивановичем. Новое сражение с московским войском было назначено на конец лета. Получив известие об этом, Дмитрий объявил сбор всех полков в Москве и Коломне на 15 августа 1380 года.
8 сентября 1380 года в решающей для русских Куликовской битве, развернувшейся между реками Дон и Непрядва, московский князь Дмитрий Иванович разбил ордынское войско, за что и получил прозвище Донской. Два года после победы на Куликовом поле Москва не платила дани завоевателям, пока новый ордынский хан, Тохтамыш, пользуясь поддержкой рязанского князя Олега, указавшего обходные пути к Москве, не взял город в 1382 году. Дмитрий был извещен о наступлении Тохтамыша, но после Куликовской битвы Москва не смогла выставить крупного войска. Город весь сгорел, кроме каменного Кремля. Воспользовавшись ослаблением Москвы, тверской князь Михаил, "забыв" клятву, отправился в Орду за ярлыком на великое княжение. Но Дмитрий Донской, опередил его "покаянным посольством" к хану. В Орде он отдал в заложники своего старшего сына Василия, поклявшись исправно платить дань. Ярлык на великое княжение остался за Москвой, после чего Дмитрий пошел войной на Рязань и разорил ее "пуще татар". В 1385 году Дмитрий Донской и Олег Рязанский заключили мир.
В связи с возобновлением выплат дани ордынцам Дмитрий увеличил поборы с податного населения. Скудость казны заставила его обратить внимание на богатый Новгород и, найдя повод, начать в декабре 1386 года войну с ним. В начале января 1387 года московское войско подошло к Новгороду, но битвы не было. Новогородцы согласились выплатить единовременно большую сумму серебром и в дальнейшем платить особую подать ("черный бор") ежегодно в пользу Москвы.