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