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