На военном совете было решено сражаться с татарами. Как рассказывает польский хронист Бернард Воповский, Витовт потребовал от Едигея отступить за Дон. Взамен он готов был заключить мир с Тамерланом и верно его хранить. Едигей не согласился: «Тамерлан, король королей, великий царь Азии, покоривший в кровавых битвах персов, турок, египтян, постановил также Европу к державам своим присоединить, а когда Польша и Литва подчинятся Тамерлану и прилежно будут платить дань и заложников поставят, отведу свое войско за Дон»
.Началась битва 12 августа за два часа перед заходом солнца. Легкая татарская конница переправилась через Ворсклу и вихрем налетела на литвинов, которые встретили врага огнем орудий, тучей стрел из луков и арбалетов. А вскоре сошлись в яростной сече. Татары не выдержали натиска литвинов и шаг за шагом начали отступать к Ворскле. Витовт появлялся то в одном, то в другом месте и поддерживал боевой дух своих воинов. Они уже верили в близкую победу. Но оказалось, что их противником было лишь войско Едигея. А в это время воины Темир-Кутлуя переправились через Ворсклу возле лагеря Витовта. Тохтамыш, охранявший лагерь, предпочел его ограбить и трусливо бежать. Из-за этого Темир-Кутлуй сумел зайти в тыл сил Витовта и ударить ему в спину. Литвины были окружены. Началось их избиение. Спастись удалось немногим. В битве на Ворскле участвовал и отряд из Московского княжества, который возглавлял князь Дмитрий Боброк. Татары гнали литвинов много верст, «пролиша кровь, аки воду»
. Погибло 74 князя, среди них Андрей Полоцкий, Дмитрий Брянский, Глеб Смоленский, Михаил Заславский, Андрей Друцкий, смоленский наместник Ямонт Тулунтович, Дмитрий Кориатович, властелин Подолии, Спитько и «иных воевод и бояр великих, и христиан, и литвы, и руси, ляхов, немцев… многое множество». Погиб некий Иван Борисович Киевский. В «Хронике Литовской и Жемойтской» так описывается битва на Ворскле: «…А затем все татарское войско ринулось на наших с великим криком, труб слышны хрипатые голоса, бубны выдают голоса, кони ржут, «ала, ала» татары кричат, а наши христиане и литва, саблями и стрельбой из ручниц бьючи их, восклицают: «Господи помогай». Татары из луков безостановочно также стреляют. Дмитрий-Корибут в середину татар со своими вскочил и там секся долго, с коней татар валячи, аж его великий отряд окружил. Крик, гул отовсюду сражающихся, как волны морские под ветрами в бурю, пули, стрелы, как дождь, свистя, летят с обоих сторон в полях, как рой пчелиный; кричат, сабли, мечи гремят, доспехи от копий трещат. И в сече наших окружили татары, и начали наши слабеть от великости их войска. Видя это, Витовт в малой дружине вместе со Свидригайло счастливым способом убежал, а татары бьют, секут, но и самих татар несколько десятков тысяч погибло».
Битва на Ворскле. Миниатюра XVI в. из Лицевого летописного свода
Сам Витовт едва спасся с небольшим отрядом. Трое суток блуждал он по степи, пока не обратился с мольбой к своему проводнику – князю Ивану Глинскому, потомку Мамая: «Пусть только выведут меня твои воины к моим городам или волостям, и я тебя теми городами и волостями пожалую»
. Проводник вывел Витовта к городку Хоробля и получил его в дар.