Великий князь во главе русских полков поставил военачальников, которые уже не раз отличались на поле брани; он мог положиться на них в предстоящей битве. Историк Н. М. Карамзин называет военачальников московского государя: «В средине находились Князья Литовские, Андрей и Дмитрий Ольгердовичи, Федор Романович Белозерский и Боярин Николай Васильевич; в собственном же полку Великокняжеском Бояре Иоанн Родионович Квашня, Михаил Бренок, Князь Иоанн Васильевич Смоленский; на правом крыле Князь Андрей Феодорович Ростовский, Князь Стародубский того же имени и Боярин Федор Грунка; на левом Князь Василий Васильевич Ярославский, Феодор Михайлович Моложский и Боярин Лев Морозов; в Сторожевом полку Боярин Михаил Иоаннович, внук Акинфов, Князь Симеон Константинович Оболенский, брат его Князь Иоанн Торусский и Андрей Серкиз; а в засаде Князь Владимир Андреевич, внук Калитин, Дмитрий Михайлович Волынский, победитель Олега и Болгаров, муж славный доблестию и разумом, — Роман Михайлович Брянский, Василий Михайлович Кашинский и сын Романа Новосильского».
Мамай выстроил золотоордынское войско следующим боевым порядком. Впереди шла лёгкая конница лучников. В центре — пехота, состоявшая из наемников-итальянцев и спешенных всадников. На флангах наступала тяжеловооруженная конница, которой ставилась задача прорваться в тыл русским. Войска составляли две линии, кроме того, у подножия Красного холма расположился сильный конный резерв.
Сражение началось около 12 часов дня поединком русского воина инока Пересвета и ордынского богатыря Челубея. Два конника сошлись на копьях и оба погибли.
После этого ордынская легкая конница атаковала сторожевой конный полк русских. В той первой схватке принял участие и Дмитрий Донской, после чего он отъехал назад к главным силам. Масса конных татарских лучников встретила упорное сопротивление закованных в броню княжеских дружинников и долго не могла заставить их отойти назад.
После этого ордынское войско начало атаку по всей ширине Куликова поля. Сторожевому полку пришлось отойти к передовому, но и тот не выдержал натиска превосходящих числом сил врага. Затем в дело вступил большой полк. Ожесточенная битва шла в течение двух часов, распавшись на отдельные единоборства, когда каждый, по словам летописи, «своего супротивника искааше победите».
Мамай все же нашел способ прорваться в тыл русской позиции. На ее левом фланге перед дубравой шла довольно широкая лощина, ровное дно которой позволяло тяжеловооруженным ханским всадникам набрать таранную скорость. Мамай и бросил сюда резервную конницу. Она прорвала позиции русского полка левой руки и оказалась между Доном и тылом сражавшегося большого полка. Ордынцев остановил русский резерв, сразу же вступивший в бой.
Из боевого порядка русской рати под натиском превосходящих сил Мамаева войска выстоял только полк правой руки, который в сражении так и не подался назад. Здесь воеводам даже пришлось сдерживать ратников, чтобы они не шли вперед, поскольку возникала опасность оторваться от большого полка, ибо, как говорится в летописи, «вся сила татарская паде на средину и лежи, хотяху разорвати».
Древнейшие источники сообщают о самом течении Куликовской битвы до обидного мало. За исключением начала сечи, «известны только два момента, — пишет историк Д. И. Иловайский, — поражение русского войска и победоносный удар засадного полка. По тем же источникам битва длилась не менее трех часов. Сколько же должно было совершиться разных оборотов дела, различных движений и усилий с той и другой стороны в течение этих трех часов! Едва ли дело было так просто, что вся масса Русской рати одновременно обратилась в бегство, а затем явился один засадный полк и мгновенно перевернул все в обратную сторону?»
Действительно, один засадный полк своим сильным и внезапным ударом просто не мог повернуть ход сражения в обратную сторону. Бежать с Куликова поля было просто некуда — сзади тек глубокий Дон, мосты через который были уничтожены по приказу московского князя. Русским пришлось развернуть свой фронт лицом к прорвавшейся вражеской коннице — большому полку, остаткам передового и запасному. Так стихийно сложилась новая линия, новое боевое построение русских войск. Полк же правой руки отбивал все атаки с прежним успехом.
Когда вся масса тяжелой золотоордынской конницы прорвалась через ряды полка левой руки, наступила действительно критическая минута битвы на Куликовом поле. Мамай ввел в прорыв свои последние резервы — с Красного холма было видно, как победная чаша весов клонилась в его сторону. Исход битвы теперь решало численное превосходство ордынцев, но так считало только их начальство.