Правитель Орды Тимур-Кутлуй предлагал Витовту мир в обмен на выдачу Тохтамыша, но получил ответ: «Язь царя Тохтамыша не выдамъ, а со царем Тимур-Кутлуем хощу видети сам». Тимур-Кутлуй собрал ордынские силы и двинулся навстречу Витовту. Сошлись на берегах реки Ворсклы. Перед битвой начались переговоры. Тимур-Кутлуй отправил к Витовту своих послов спросить: «Зачем ты на меня пришел? Я твоей земли не брал, ни городов, ни сел твоих». Витовт ответил: «Бог покорил мне все земли, покорись и ты мне, будь мне сыном, а я буду тебе отцом, и давай мне всякий год дани и оброк; если же не хочешь быть моим сыном, то будешь рабом, а вся орда твоя будет предана мечу!» (Никоновская летопись).
Если верить в достоверность этого диалога, то надо признать, что таким языком с ханом Орды ранее никто не разговаривал, и столь откровенная уверенность в своих силах смутила Тимур-Кутлуя. Он затягивал переговоры, поджидая прихода Едигея. Наконец пришел Едигей и потребовал личных переговоров с Витовтом. Противники съехались по разным берегам Воркслы, и Едигей сказал Витовту: «По праву ты взял нашего хана в сыновья, потому что ты стар, а он молод. Но я еще старше тебя, так следует тебе быть моим сыном, дани давать каждый год, клеймо мое чеканить на литовских монетах» (Никоновская летопись). Это был явный вызов на бой, и 12 августа 1399 года на берегах Ворсклы разыгралось одно из самых грандиозных сражений Средневековья. По разным источникам, войско Витовта насчитывало 38 тысяч воинов, а войско Орды — 90 тысяч.
Полки Витовта двинулись на ордынцев. Они широко использовали артиллерию, пищали и арбалеты. Первый натиск литвинов был расценен как удача. Удар приняли тумены Едигея и попятились. Но успех был кажущимся. Верная своей тактике, Орда втягивала в бой как можно больше сил противника. И то, что летописцам издалека могло показаться временным успехом Витовта, на самом деле было заманным отступлением Едигея. Вскоре оказалось, что тумены Тимур-Кутлуя за это время сумели обойти войско Витовта с флангов и тыла. Проще говоря, оно было окружено, после чего Орда начала разгром противника. Битва длилась до позднего вечера. Пало несчетное количество ратных людей (считается, более 20 тысяч), двадцать князей, в том числе все названные выше герои Куликовской битвы. Тохтамыш первым покинул поле боя и бежал без оглядки. Следом бежали тевтонцы. Раненый Витовт тоже едва спасся бегством, татары преследовали его более 500 верст. Орда захватила весь обоз литвинов. В летописи говорится: «И тако татарове взяше обоз и телеги кованыя утверженныя с чепми железными, и пушки и пищали и самострелы, и богатство многое и великое, златые и серебряные сосуды поямаша». Великое княжество Литовское, Русское и Жемойтское простерлось перед ордынцами без защиты. Они дошли до Киева, где Тимур-Кутлуй распустил свои отряды по волостям, и опустошили Подолию. ВКЛ потеряло выход к Чёрному морю в бассейне нижнего Буга, а Киев откупился от разорения огромной по тем временам суммой в 3000 рублей.
Но дальше татары не пошли, возможно опасаясь Москвы, позиции которой после грандиозного поражения Витовта на Ворскле резко усилились. Подтверждением тому, например, может служить поведение митрополита Киприана, который вновь перебрался из Вильни в Москву, видимо понимая, что после таких потерь Литовская Русь окажется еще под большим контролем Кракова, а Москва теперь превращается в главный центр объединения русских земель. Но дело здесь было не только в этом. Татары, скорее всего, просто не располагали достаточными силами, чтобы по примеру Батыя принудить Великое княжество Литовское и Русское уплачивать дань, они почувствовали его силу и несколько десятков лет не беспокоили границы ВКЛ, что дало Витовту время для решения проблем княжества на западе и на востоке.