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