Битва произошла во вторник, 12 августа, за два часа до заката солнца. Хитрым маневром Едигей выманил Витовта из лагеря. Витовт повел войско вдоль реки параллельно движущемуся по другому берегу татарскому войску. Уловку Едигея он не разгадал, забыл, что покидает без прикрытия свой лагерь и оставляет у себя в тылу войско Темир-Кутлуя. Первым атаковал Едигей. Татарская конница, переправившись через брод, начала битву. Вражескую атаку не сдержали даже пушки, на которые надеялся Витовт: «...убо въ поле чисте пушки и пищали недействени бываху», — отмечается в Никоновской летописи. Волна татарской конницы столкнулась с закованной в броню тяжелой кавалерией Витовта. В той же Никоновской летописи читаем: «...но убо Литва крепко боряхуся, и идяху стрелы, аки дождь силенъ, и тако начяша перемогати Литва князя Едигея Ординского». В этот момент с тыла ударил Темир-Кутлуй. Он переправился через Ворсклу возле Витовтова стана и захватил его. Тохтамыш, который охранял его, разграбил лагерь и трусливо бежал. А войско Темир-Кутлуя беспрепятственно зашло в тыл литвинского войска. Положение усугубилось и тем, что поднялась буря и ветер дул в сторону литвинов. Они оказались окруженными. «И обыдоша ихъ кругом, — сообщает Никоновская летопись, — и подстреляша под ними кони и надолзе зело биющимся имъ крепко велми обоимъ, и бысть брань люта и сеча зла зело, и паки начяша премогати Татарове. И одоле царь Темир-Кутлуй и победи Витофта и всю силу Литовскую, а Тохтамыш царь, егда видевъ сиа, и преже всехъ на бегъ устремился и многъ народъ возтръгаше, бегучи, акы на жатве класы, и много Литовскиа земли пограбилъ». Яркое художественное описание этой битвы дает «Хроника Литовская и Жмойтская»: «...а затым огромне скочили до себе з великим криком, труб слыхати храпливых голосы, бубны выдают голосы, кони ржуть, «ала, ала» татары кричать, а наши христиане и литва, шаблями и стрелбою ручничною биючи их, волают: «Господи помогай». Татаре з луков безпрестанку также стреляють. Димитр Корибут впосред татар з своими вскочил, и там селкся долго, з коней татар валяючи, аж его великий гмин конми оскочил. Крик, гук отвсюль валяючихся як волнам морским для ветров бурачихся, кули, стрелы, як дождь, свищучи, летят з обу сторон в полях, як рой пчолный; кричат, шабли, мечи гримят, зброи от копий трещат. А в том наших огорнули татаре и почали слабети наши от их великости войска. Видячи Витолт, же зле, утекл з Швидригайлом в малой дружине фортелем промыслным, а татаре биют, секуть, любо то и самых колкодесять тисячей татар згинуло. И так татаре збили все наше войско и распорошили, мало где кто сховался або ушол, и то пехотою, снадней в траве (нижли конем) сховавшися».
Сам Витовт едва спасся и несколько дней блуждал по степи. Татары гнали литвинов 500 верст, «пролита кровь, аки воду». Погибло более 50 князей (Никоновская летопись называет цифру 74 «всех князей именитых славных»), среди них — Андрей Полоцкий, Дмитрий Брянский, Глеб Смоленский, Михаил Заславский, Андрей Друцкий, Дмитрий Боброк, Глеб Кориятович, Михаил Подберезкий, Дмитрий и Федор Патрикевичи, Иван Бельский и др.
Витовт не терял присутствие духа, успел подготовить к защите Киев, а сам с запасными хоругвами поспешил к острову Тавань на Днепре, чтобы не дать переправиться тут Едигею. Воины рвались в бой, желая смыть кровью позор поражения. Когда Ягайло прислал письмо с обещанием помощи, то он ответил: «Этого не нужно. Если не только Едигей, но и сам Тамерлан со всеми войсками отважится на переправу через Днепр, я смогу задержать его». Едигей повернул в Крым. А войско Темир-Кутлуя дошло до Киева, но штурмовать его не отважилось. Взяв откуп в 3 тысячи рублей с города и 50 рублей с Печерского монастыря, татары вернулись в степь.
Благодаря мужеству воинов Витовта Золотая Орда, понеся существенные потери, не смогла совершить нашествие на Европу, что хотели сделать золотоордынский хан Темир-Кутлуй и его покровитель Тамерлан. Золотая Орда даже не смогла вернуть под свою власть украинские земли, Причерноморье и Нижнее Поднепровье. Вскоре умер Темир-Кутлуй, смертельно раненный в битве на Ворскле Свидригайлой. И в Орде вновь начались междоусобицы, что не позволило ей использовать победу на Ворскле. «Важность битвы при Ворксле для судеб Восточной Европы не подлежит сомнению», — отмечал русский историк Сергей Соловьев. Могущество Золотой Орды уже не пугало. Наступало время упадка некогда непобедимого исполина.