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