Весной 1376 года Московский князь Дмитрий Иванович, в будущем прозванный Донским, вторгся в Волжскую Булгарию. Разгромив войска противника, он берет большой откуп и вместо ставленников Мамая ставит своих. За это правитель Золотой Орды посылает на Русь армию, которая разбивает русское войско на реке Пьяне и, разграбив города, уходит в степь.
В 1378 году новое войско под руководством опытного мурзы Бегича снова приходит на Русь, чтобы завершить разгром Дмитрия. В августе того же года войско московского князя разбило ордынцев. Это был первый крупный успех Руси в полевом сражении против татарской конницы. Оно имело огромный психологический эффект и показало, что русские могут побеждать кочевников. Через два года князь Дмитрий повторит победу, только уже над Мамаем и на Куликовском поле.
Основные сведения о битве содержатся в «Повести о битве на реке Воже» из Троицкой летописи. Фрагменты из этого документа вошли и в ряд других летописей Северо-Восточной Руси. Из «Повести» историки узнали точную дату боя, его ход и основных участников. По версии исследователя Владимира Кучкина, именно события на Воже легли в основу сказаний, описывающих Куликовскую битву.
В «Повести» говорится, что князь Дмитрий Иванович, узнав о приближении Бегича, собрал много воинов, с которыми пошел в поле. Точных цифр о количестве русской армии нет. На основе косвенных свидетельств об особенностях военного дела того времени и беря в учет мобилизационные возможности Московского княжества и его союзников, историки считают, что в армии Дмитрия было до 4000 конницы и от 2000 до 5000 пешего ополчения.
Хотя вопрос присутствия пехоты рядом историков ставится под сомнения. Известно, что для похода на Русь Мамай послал 5 туменов, без уточнения точного количества всадников. Историк Федор Селезнев считает, что адекватной цифрой можно считать 10 тыс. воинов.
Великий князь Дмитрий, располагая сведениями о передвижениях противника, выдвинулся на перехват. Местом битвы стала неглубокая река Вожа. Армия русских выстроилась дугой на небольшой возвышенности с выдвинутыми к реке флангами. В центре стоял сам Дмитрий Иванович, справа — окольничий Тимофей Вельяминов, слева — пронский князь Данила. Армия Бегича выстроилась на левом берегу и не могла перейти на сторону русских.
Дмитрий Иванович, понимая мощь ордынской конницы в чистом поле, запретил ратникам двигаться вперед. Несколько дней обе армии осыпали друг друга стрелами, и татары пытались выманить русских с их позиций. Видя, что татары не спешат штурмовать удобные для обороны русские позиции, князь Дмитрий идет на хитрость. Бегич, не оценив численность вражеской армии, идет в наступление. В конце дня 11 августа 1378 года ордынцы начали форсировать реку и атаковали заранее построившихся воинов князя Дмитрия. Бегич намеревался нанести удар конницей в центр, после чего русские побегут, но мурза недооценил противника.
Пехота с большими щитами и длинными копьями выдержала напор татарской конницы, которая в условиях пересеченной местности левого берега реки не могла маневрировать и выстраиваться для повторной атаки. После первого удара всадники первых рядов стали поворачивать лошадей, а на них продолжали напирать те, кто был сзади. Началось замешательство, и русский центр перешел в наступление. Одновременно с флангов ударили всадники окольничего Вельяминова и князя Данилы. Татары повернули в сторону атакующего противника и помчались навстречу. В кавалерийской сшибке княжеские всадники опрокинули ордынцев и погнали их через реку.
В летописи говорится, что многие враги погибли не от русского оружия, а утонув в реке во время бегства. В сражении погиб сам мурза Бегич, а также ордынские князья Хазибей, Коверга, Карабулуг, Кострюк. Почти все войско Орды было уничтожено, а московские потери оказались незначительны. Из летописи известно только о гибели воевод Дмитрия Манастынева и Назара Кусакова.