Великий князь московський і володимирський Дмитро, готуючись до вирішальної сутички, сповістив всіх руських князів про навислу загрозу і закликав їх об'єднати сили для відбиття ворожого вторгнення. Щоб виграти час і отримати інформацію про ворожих військах, в Орду був посланий з багатими дарами Захарій Тютчев. Він зміг повідомити в Москву про союз Мамая з Ягайлом і Олегом. Крім того, були організовані далекі дозори, військова розвідка підтвердила дані посла і надалі сповіщала російське командування про просування ворожого полчища.
Дмитро призначив збір військ в Коломиї. Русь змогла виставити приблизно 40-70 тис. Армію, яка складалася з полків під керівництвом 23 князів і воєвод. Тут були полки майже всіх земель Північно-Східної Русі, включаючи сили Суздальського, Тверського великих князівств. З різних причин не було полків нижегородських, новгородських і рязанських. До військ Дмитра приєдналися псковські і брянські дружини під керівництвом двох литовських князів Андрія і Дмитра Ольгердовича - братів Ягайло. Військо було досить різноманітним: від «кованої раті» великого князя Дмитра (ударні з'єднання важкої кавалерії), професійних загонів князів і бояр, до ополченців з усіх верств населення Русі. Уже в Коломиї великий князь і його права рука, двоюрідний брат - удільний князь Серпуховской Володимир Андрійович, звели полки в п'ять тактичних одиниць - передовий (сторожовий) полк, великий полк, полки правої і лівої руки і засадний ( «західної») полк. Дмитро став на чолі великого полку, Володимир Андрійович - полку правої руки (його полк потім стане засадним, а полк правої руки очолить Андрій Полоцький), а полк лівої руки - Гліб Брянський.
Після зближення протилежних один одному армій, за повідомленням «Сказання про Мамаєвому побоїще», відбулося традиційне для середніх віків єдиноборство богатирів-поєдинщика. З російської сторони виїхав витязь Пересвет, а з боку ворога - богатир Темір-Мурза (Челубей). Обидва бійці загинули в сутичці. Потім сталося зіткнення сторожового полку з передовими татарськими частинами, бій йшов близько години. О дванадцятій годині дня російське командування послало основні війська назустріч ворогу. Полк правої руки захистив свій фланг ярами і перелісками біля річки Нижній Дубяк, а полк лівої руки річкою Смолка. Почався кривавий бій. «І тако сступішася обидві сили Великої на бій, - повідомляє російський літописець, - і бисть брань міцна і січа зла зело, і ліашеся кров, аки вода, і впали мертвих безліч бесчіслено від обох сил, від татарських і російською ...; всюди бо безліч мертвих лежаху, і не можаху коні ступаті по мертвим; не тільки ж зброєю убівахом, але самі себе що б'є, і під Коньске ногами уміраху, від великі тісноти задихахуся, яко немічне бе вместітіся на поле Куликове ... ».
Русский правий фланг відбив всі ворожі атаки. У центрі, куди спочатку був нанесений головний дар ворожих сил, йшла люта січа. Противник після трьох годин битви став долати, російські сили несли великі втрати. Однак російські воєводи змогли виправити становище, прорив фронту був запобігли. Критична ситуація склалася на лівому фланзі російської армії: ліве крило під страшним тиском ворога було здебільшого знищено і стало відходити, тільки втручання резерву Дмитра Ольгердовича була усунута загроза прориву ординців в тил російського центру.