Тверской князь Михаил попытался вовлечь в войну с Москвой не только литовцев, но и татар. В 1370 г. он ездил в Орду к эмиру Мамаю и получил от него ярлык на великое княжество Владимирское. Но Дмитрий отказался подчиниться Орде и не пустил Михаила Тверского во Владимир. Тогда Тверь во второй раз призвала на помощь литовцев. В течение двух дней Ольгерд безуспешно пытался взять Волоколамск, а затем восемь дней осаждал Москву. Второй поход на Москву закончился тем, что противники заключили перемирие на полгода.

Вернувшись из похода, Михаил Тверской снова отправился к Мамаю и вернулся на Русь с ярлыком в сопровождении татарского посла Сарыхожи. Дмитрий Иванович и на этот раз отказался подчиниться воле Мамая, но принял Сарыхожу в Москве и осыпал подарками. Чтобы избежать полного разрыва с Мамаем, князь Дмитрий вынужден был отправиться на поклон к нему в Сарай. Истратив огромные суммы денег, он вернул ярлык на великое княжество.

В июне 1372 г. Ольгерд и Михаил Тверской предприняли новый поход на Москву. Но этот раз князь Дмитрий успел хорошо подготовиться к войне. Многочисленное московское войско встретило противника близ южной границы под Любутском. Несколько дней рати стояли друг против друга, а затем разошлись в разные стороны. Мирное соглашение завершило длительную и трудную войну.

Как и в 1368 г. Москва пустила в ход всевозможные ухищрения, чтобы навязать Твери свои условия мира. Московские послы заплатили татарам неслыханную сумму «тму рублев» (10 000) за княжича Ивана, наследника тверского князя, оставленного отцом в Орде в качестве заложника поле получения ярлыка на великое княжение. В конце 1372 г. княжича привезли в Москву и стали «держати в ыстоме» на митрополичьем дворе. Михаилу пришлось покориться. Мир был подписан, а княжич Иван отпущен к отцу.

В начале правления Дмитрий и его бояре проводили политику подчинения Орде, традиционную со времен Александра Невского и Ивана I Калиты. Однако как только в Орде начались междоусобицы и смута, Русь попыталась избавиться от чужеземного ига. В 1374 г. в Нижнем Новгороде народ перебил татарских послов с отрядом в 1000 человек. Москва немедленно послала на границу свои войска. При посредничестве митрополита Алексея и посланца константинопольского патриарха Киприана русские князья составили коалицию и стали готовиться к войне с Мамаем, правителем Орды. Основу коалиции составил союз между Москвой, Тверью и Рязанью. Крушение коалиции началось после того, как в Твери появился беглый московский боярин И. Вельяминов. Он поведал тверскому князю Михаилу о раздорах в Москве и склонил к войне с князем Дмитрием. Литва и татары обещали Михаилу военную помощь. Вельяминов отправился в Орду, после чего хан передал ярлык на владимирский престол тверскому князю. Получив ярлык, Михаил тотчас послал рать на московскую границу. Он явно переоценил свои силы. В 1375 г. войска десятка русских княжеств, собранные, по-видимому, для войны с Ордой, обрушились на Тверь. После месячной осады Твери Михаил признал свое поражение и объявил о возвращении в состав антиордынской коалиции. Боярин И. Вельяминов, будучи в Орде, именовал себя московским тысяцким. Князь Дмитрий нашел случай отомстить ему за интриги. Боярина хитростью заманили на Русь, схватили и обезглавили.

В 1378 г. полки Московского и Рязанского княжеств нанести поражение татарам на реке Воже в пределах Рязанского княжества. Правителю Орды надо было либо отказаться от богатого русского улуса, либо обрушить на Русь сокрушительный удар, чтобы в корне пресечь угрозу татарской власти.

В орде эмир Мамай имел серьезного противника в лице хана Тохтамыша, подчинившего себе среднеазиатские владения империи. Тем не менее под властью Мамая оставались обширные территории от Нижней Волги до Крыма и Северного Кавказа.

Золотая Орда представляла собой сложный конгломерат кочевых племен и народностей. Монгольские племена, приведенные на Волгу Батыем, по-прежнему составляли ядро ее военных сил. Но основным населением ордынских степей были половцы. Завоеватели сохранили власть над половцами, но приняли их культуру. В качестве государственного языка в Орде в конце XIV в. стал использоваться половецкий.

Русь вступила в войну с Ордой в неблагоприятных условиях. Против нее объединились два наиболее сильных противника — татары и литовцы. Орда Мамая придвинулась к русской границе. На помощь ему шел литовский великий князь Ягайло с литовско-румынскими полками. Дмитрий Иванович решил отправиться в ордынскую степь, чтобы сразиться с татарами до их соединения с Ягайло. Ему удалось осуществить свой план.

Когда началась война, антиордынская коалиция окончательно распалась. Главные союзники Тверь и Нижний Новгород бросили Москву на произвол судьбы, а Рязань переметнулась на сторону татар. Лишь два княжества — Ростовское и Ярославское — прислали на помощь князю Дмитрию свои дружины. Эти княжества, пережившие дробление, находились в сфере московского влияния. Представление об участии в войне до полумиллиона ратников с обеих сторон сильно преувеличено. Москва едва ли могла выставить против Мамая более двадцати-тридцати тысяч человек. Численное превосходство было на стороне татар.

В конце лета 1380 г. князь Дмитрий Иванович отправился в поход на татар. Проделав путь в 200 км от Коломны до Дона, русская рать на рассвете 8 сентября 1380 г. переправилась на Дон и выстроилась в боевом порядке на обширном поле между Доном и Непрядвой.

Подойдя с юга, Мамай разбил ставку на вершине Красного Холма, господствовавшего над местностью. Поле заметно понижалось к северу, что благоприятствовало атакующим. Около полудня Мамай бросил свою конницу в атаку на русские полки. Но Дмитрий Иванович и воевода Боброк умело использовали особенности местности, располагая войска. Татары не смогли применить свою излюбленную тактику охвата флангов русской армии.

Русские воеводы понимали, что сеча будет кровавой и победит тот, кто сохранит больше сил. Великий князь пошел на риск. Подчинив Боброку значительные силы, он велел ему укрыться в засаде в зеленой дубраве на левом фланге. Соотношение сил в первой линии стало еще более неблагоприятным для русских.