Усиление Московского княжества встревожило Мамая. В 1378 году он послал на Русь войско под командованием мурзы Бегича. Войско князя Московского Дмитрия Ивановича встретило ордынцев на реке Воже и разбило их. Мамай, узнав о поражении Бегича, стал готовиться к большому походу на Русь. Он вступил в союз с великим князем литовским Ягайло и рязанским князем Олегом. Летом 1380 года Мамай начал поход.
Князь Московский Дмитрий Иванович, узнав в конце июля о движении монголо-татар, обратился с призывом о сборе русских военных сил в Москве и Коломне. Под стяги великого князя московского Дмитрия Ивановича собрались дружины 27 русских городов и княжеств. Общая численность войска превышала 100 тысяч человек.
План похода состоял в том, чтобы, не ожидая соединения на Оке Мамая со своими союзниками, переправиться через Оку и двинуться навстречу противнику к верховьям Дона. Поход войска происходил в августе – начале сентября.
19 (6 сентября по старому стилю) по Старой Данковской дороге русские полки достигли реки Дон. На военном совете было решено переправляться через реку и встретить врага за Доном и Непрядвой. В ночь с 20 (7) на 21 (8) сентября войска переправились через Дон и ранним утром 21 сентября начали разворачиваться в боевой порядок между балкой Рыбий верх и рекой Смолкой на фронте около 1 км лицом на юго-восток, к водоразделу, откуда двигались силы Мамая.
В авангарде русского войска были отряды Сторожевого полка. В передней линии находился Передовой полк. Основная линия русского боевого построения имела трехчленное деление. В центре располагался Большой полк, его фланги прикрывали полки Правой и Левой руки, которые упирались краями в заросшие лесом отроги балки и речки. За большим полком располагался резерв.
Предугадывая ход битвы, русские полководцы разместили восточнее полка Левой руки в большом лесном урочище «Зеленая Дубрава» Засадный полк, состоявший из отборных конных дружин. Мамай также расположил свою конницу и наемников в линейном порядке.
Битва началась поединком русского воина инока Пересвета с монгольским богатырем Челубеем. В этом поединке оба воина погибли. Затем татарская конница, смяв передовой полк, начала теснить большой полк; русские полки несли значительные потери; был убит сражавшийся в большом полку в доспехах великого князя и под его знаменем боярин Михаил Бренок. Великий князь Дмитрий в доспехах рядового воина бился среди воинов того же полка.
Однако русские выстояли, и тогда, создавая численный перевес, Мамай бросил последние свежие силы на полк Левой руки. Понесший значительные потери полк Левой руки начал отступать. Не спас положение и выдвинутый на помощь резерв. Огибая фланг Большого полка, золотоордынская конница стала выходить в тыл московской рати. Создалась реальная угроза окружения и уничтожения русских сил. Наступила кульминация сражения. В этот момент в спину прорвавшимся ордынцам ударил Засадный полк.
Внезапное введение в бой свежих русских сил коренным образом изменило ситуацию. Вступление в бой Засадного полка послужило сигналом к всеобщему наступлению московской рати. Началось массовое бегство войска Мамая. Преследование велось русской конницей до наступления темноты.
Победа была полной, был захвачен весь лагерь и обоз ордынцев. Однако русская рать в ходе сражения понесла большие потери. Семь дней собирали и хоронили в братских могилах павших воинов.
Куликовская битва имела большое историческое значение в борьбе русского и других народов с монголо-татарским гнетом. Важным следствием Куликовской битвы было усиление роли Москвы в образовании Русского государства.