Понимая, что Русь окажет ему стойкое сопротивление, Мамай собрал большую рать и, кроме того, вошел в сношение с Литвой, которая, как мы знаем, была тогда враждебна Москве. Литовский князь Ягайло обещал Мамаю соединиться с ним 1 сентября 1380 г. Узнав о приготовлениях Мамая, рязанский князь Олег также вошел в сношение с Мамаем и Ягайлом, стараясь уберечь свою украинскую землю от нового неизбежного разорения татарами. Не укрылись приготовления татар к походу и от московского князя. Он собрал вокруг себя всех своих подручных князей (ростовских, ярославских, белозерских). Послал он также за помощью к прочим великим князьям и в Новгород, но ни от кого из них не успел получить значительных вспомогательных войск и остался при одних своих силах. Силы эти, правда, были велики, и современники удивлялись как количеству, так и качеству московской рати. По вестям о движении Мамая князь Дмитрий выступил в поход в августе 1380 г. Перед началом похода был он у преподобного Сергия в его монастыре и получил его благословение на брань. Знаменитый игумен дал великому князю из братии своего монастыря двух богатырей по имени Пересвета и Ослебя <<*Слово Ослебя (Ослябя) склонялось как осля, щеня, теля: Ослебяти и т. д. От этого имени произошла фамилия Ослебятевых. Оба богатыря троицких погибли в бою с татарами; могилы их сохранились в Симоновом монастыре в Москве.>>, как видимый знак своего сочувствия к подвигу князя Дмитрия. Первоначально московское войско двинулось на Коломну, к границам Рязани, так как думали, что Мамай пойдет на Москву через Рязань. Когда же узнали, что татары идут западнее, чтобы соединиться с Литвой, то великий князь двинулся тоже на запад, к Серпухову, и решил не ждать Мамая на своих границах, а идти к нему навстречу в "дикое поле" и встретить его раньше, чем он успеет там сойтись с литовской ратью. Не дать соединиться врагам и бить их порознь — обычное военное правило. Дмитрий переправился через Оку на юг, пошел к верховьям Дона, перешел и Дон, и на Куликовом поле, при устье речки Непрядвы (впадающей в Дон справа) встретил Мамаеву рать. Литовский князь не успел соединиться с ней и был, как говорили тогда, всего на один день пути от места встречи русских и татар. Боясь дурного исхода предстоящей битвы, великий князь поставил в скрытном месте, в дубраве у Дона, особый засадный полк под начальством своего двоюродного брата князя Владимира Андреевича и боярина Боброка, волынца родом. Опасения Дмитрия оправдались; в жесточайшей сече татары одолели и потеснили русских; пало много князей и бояр: сам великий князь пропал безвестно; сбитый с ног, он без чувств лежал под деревом. В критическую минуту засадный полк ударил на татар, смял их и погнал. Не ожидавшие удара татары бросили свой лагерь и бежали без оглядки. Сам Мамай убежал с поля битвы с малой свитой. Русские преследовали татар несколько десятков верст и забрали богатую добычу. Возвращение великого князя в Москву было торжественно, но и печально. Велика была победа, но велики и потери. Когда, спустя два года (1382), новый ордынский хан, свергший Мамая, Тохтамыш внезапно пришел с войском на Русь, у великого князя не было под руками достаточно людей, чтобы встретить врага, и он не смог их скоро собрать. Татары подошли к Москве, а Дмитрий ушел на север. Москва была взята татарами, ограблена и сожжена; разорены были и другие города. Татары удалились с большой добычей и с полоном, а Дмитрий должен был признать себя снова данником татар и дать хану заложником своего сына Василия. Таким образом, иго не было свергнуто, а северная Русь была обессилена безуспешной борьбой за освобождение.
Тем не менее Куликовская битва имела громадное значение для северной Руси и для Москвы. Современники считали ее величайшим событием, и победителю татар, великому князю Дмитрию, дали почетное прозвище "Донского" за победу на Дону. Военное значение Куликовской победы заключалось в том, что она уничтожила прежнее убеждение в непобедимости Орды и показала, что Русь окрепла для борьбы за независимость. Набег Тохтамыша не уменьшил этого значения Мамаева побоища: татары одолели в 1382 г. только потому, что пришли "изгоном", внезапно и крадучись, а Москва их проглядела и не убереглась. Все понимали, что теперь Русь не поддастся, как прежде, нашествиям Орды и что татарам можно действовать против Руси только нечаянными набегами. Политическое же и национальное значение Куликовской битвы заключалось в том, что она дала толчок к решительному народному объединению под властью одного государя, московского князя. С точки зрения тогдашних русских людей, события 1380 г. имели такой смысл: Мамаева нашествия со страхом ждала вся северная Русь. Рязанский князь, боясь за себя, "изменил", войдя в покорное соглашение с врагом. Другие крупные князья (суздальско-нижегородские, тверской) притаились, выжидая событий. Великий Новгород не спешил со своей помощью. Один московский князь, собрав свои силы, решился дать отпор Мамаю и притом не на своем рубеже, а в диком поле, где он заслонил собой не один свой удел, а всю Русь. Приняв на себя татарский натиск, Дмитрий явился добрым страдальцем за всю землю Русскую; а отразив этот натиск, он явил такую мощь, которая ставила его естественно во главе всего народа, выше всех других князей. К нему, как к своему единому государю, потянулся весь народ. Москва стала очевидным для всех центром народного объединения, и московским князьям оставалось только пользоваться плодами политики Донского и собирать в одно целое шедшие в их руки земли.