Более сложный характер носили отношения русских князей с более сильной и непосредственно граничившей с юга с русскими землями ордой темника Мамая, правившего от имени подставных ханов-Чингизидов. Именно в эту орду направился Михаил Тверской хлопотать о ярлыке на великое княжение. Это заставило и Дмитрия Ивановича в 1371 г. также направиться в Орду, чтобы добиться подтверждения своих прав на великокняжеский стол. Оттуда великий князь вернулся «с многыми длъжникы и бышет от него по городом тягость даннаа велика людем». Но выплата выхода в Орду продолжалась недолго. Уже в 1374 г. «князю великому Дмитрию московскому бышеть розмирие с татары и с Мамаем». Впервые в истории русско-ордынских отношений зависимость русских земель от Орды была открыто разорвана. К тому же времени, когда началось «розмирье», относится известие о торжествах в Переяславле по поводу рождения второго сына Дмитрия Ивановича, Юрия, куда «отовсюду съехашася князи и бояре». По мнению ряда исследователей, именно здесь было принято коллективное решение русских князей о разрыве с Ордой. Начались нападения мамаевых татар на Нижегородскую землю и союзные Москве черниговские княжества на верхней Оке. В 1376 г. Дмитрий Иванович «ходил за Оку ратию, стерегася рати татарьское». Так определился способ действий, избранный великим князем — предводителем русских войск: не ждать пассивно нападения Орды, организуя оборону, а предпринять собственные активные действия.
Правда, первый опыт такого рода оказался неудачным. Против войск пришедшего из Кок-Орды царевича Араб-шаха (Арапши) в 1377 г. была выслана московская и нижегородская рать. Узнав в походе, что царевич находится далеко, войско утратило бдительность: воины сложили доспехи на телеги, расстегивали одежды, разопрев от жары, пили мед и пиво. Внезапный набег татар Мамаевой Орды привел к поражению захваченного врасплох русского войска. После этого ордынцы разорили Нижний Новгород. Уроки были учтены, когда в 1378 г. Мамай послал большое войско во главе с мурзой Бегичем «на князя великого Дмитрия Ивановича и на всю землю Русскую». Дмитрий Иванович своевременно собрал войско и двинулся навстречу ордынцам. Перед походом он посетил знаменитого подвижника Сергия Радонежского и получил от него благословение. Перейдя Оку, русское войско остановило ордынцев в Рязанской земле на реке Воже. И августа 1378 г. войско Бегича перешло реку и напало на русских, но потерпело полное поражение и было опрокинуто в реку. В сражении погибло пять ордынских князей, что говорит о немалых размерах пришедшего с Бегичем войска.
Для нового похода на Русь Мамай не только собрал все свои силы, но и усилил свое войско отрядами наемников из числа жителей итальянских колоний в Крыму и народов Северного Кавказа. Кроме того, он вступил в союз с великим князем литовским Ягайло, сыном Ольгерда, и рязанским князем Олегом. Была достигнута договоренность о соединении сил союзников для совместного похода на Северо-Восточную Русь.
Положение было опасным. Дмитрий Иванович принял смелое решение выступить против Мамая и нанести ему поражение до того, как он успеет соединиться со своими союзниками. Пактом сбора войск стала Коломна, куда пришли со своими войсками все князья Северо-Восточной Руси. Как записал автор «Летописной повести» — одного из наиболее ранних и достоверных рассказов о походе Дмитрия Ивановича, «от начала миру не бывала такова сила русских князей». Узнав о сборе такого большого войска, Мамай заявил, что готов отказаться от похода на Русь, если ему выплатят выход в том же размере, как при хане Джанибеке, т. е. в эпоху высшего могущества Золотой Орды, но русские князья отклонили его предложение. Из Коломны, где коломенский епископ Герасим благословил собравшееся войско, Дмитрий Иванович двинулся через Рязанскую землю к Дону, где стоял Мамай, ожидая вестей о приближении союзников. Некоторые из русских военачальников предлагали не переходить Дон, но Дмитрий Иванович принял решение перейти реку и вступить в сражение с ордынцами. Здесь ему принесли грамоту от Сергия Радонежского с «благословением». Битва русского войска и ордынцев произошла на Куликовом поле у устья реки Непрядвы. Борьба была долгой и упорной, обе стороны несли большие потери: «чрез весь день сечахуся и падоша мертвых множество бесчисленно от обоих». Дмитрий Иванович сражался в первых рядах своего войска, как записал летописец, «бяше видети, весь доспех его бит и язвен». Исход сражения, по свидетельству «Сказания о Мамаевом побоище», решил неожиданный удар стоявшего в засаде полка во главе с князем Владимиром Андреевичем Серпуховским и московским воеводой Дмитрием Боброком. Остатки ордынского войска беспорядочно бежали, бросив свой обоз. После этого выступивший было в поход Ягайло спешно увел свое войско, а Олег Рязанский бежал, бросив свое княжество.