Армия, возглавляемая Константином Острожским, в отличие от московского войска, делала ставку на взаимодействие всех родов войск на поле боя. Предполагалось совместное действие тяжелой и легкой конницы, пехоты и полевой артиллерии. Под командованием гетмана князя Острожского было 30–35 тысяч человек (вероятно, несколько завышенные данные), и он смело стал напирать на противостоявшие ему московские войска, надеясь не на количество, а на выучку своей армии.
Русские войска под предводительством воевод Голицы и Челяднина состояли из 80 000 человек (абсолютно завышенная цифра). Старшим в войске был конюший Иван Андреевич Челяднин. После ряда стычек с литовским войском он велел отойти на левый берег Днепра и не мешать литовской армии переправляться. Видимо, он хотел заманить противника за Днепр, прижать к реке и раздавить массой, либо ударом с флангов отрезать от переправы, то есть Челяднин хотел повторить победу 1500 года не речке Ведроши, которая, в свою очередь, напоминала атаку засадного полка, решившего исход Куликовской битвы в 1380 году.
Ночью 8 сентября литовская конница переправилась через Днепр и прикрыла наводку мостов для пехоты и полевой артиллерии. Московские войска не препятствовали переправе. Утром все литовское войско было на левом берегу Днепра. С тыла у Острожского была река, правый фланг упирался в болотистую речку Крапивну. Свое войско он построил в две линии. В первой линии стояла конница. Польские латники составляли всего лишь четвертую часть ее и располагались в центре, являя собой его правую половину. Вторую половину центра и оба фланга составляла литовская конница. Во второй линии для устойчивости боевого порядка встала пехота, по флангам – полевая артиллерия.
Русское войско построилось в три линии для фронтального удара. Два больших конных отряда встали по флангам несколько в отдалении, чтобы охватить противника, прорваться ему в тыл и окружить.
Как свидетельствуют очевидцы, хитроумный Острожский сначала отвлекал Челяднина мирными переговорами, а затем внезапно напал. Однако первым начал сражение правофланговый русский отряд под командованием князя Михаила Ивановича Голицы-Булгакова-Патрикеева. Он атаковал левофланговую литовскую конницу. В случае успеха атаки и прорыва к переправам литовцы были бы зажаты в угол между Днепром и Крапивной и там перебиты в болоте. Но литовская конница оказала Голице серьезное сопротивление, а польская пехота выдвинулась из второй линии вперед и открыла огонь по русской коннице с фланга.
Русский летописец утверждает, что Челяднин из зависти не помог Голице. Поэтому русская конница была сбита, а Острожский сам с литовцами преследовал ее и даже врубился в основные русские силы. Далее, опять же по утверждениям летописи, Голица не помог Челяднину. Тем не менее основные силы московского войска устояли.
Левофланговый отряд московской конницы пошел в атаку и столкнулся с правым флангом литовской первой линии. Одни историки утверждают, что русские успешно опрокинули литовскую конницу и преследовали ее. Например, многие считают, что литовцы после упорного сопротивления намеренно обратились в бегство и подвели русских под свои пушки. Как бы то ни было, но залп литовской артиллерии смял преследующих, привел их в расстройство. То ли русская конница, уклоняясь от огня, взяла левее, то ли сыграл свою роль контрудар польских латников, но весь левофланговый конный отряд московского войска был прижат к болотам у Крапивны и там уничтожен. Река Крапивна была буквально запружена телами москвитян, которые в бегстве бросались в нее с крутых берегов.
Согласно летописи, Голица вновь подвергся нападению, и «Челяднин опять выдал последнего». Скорее всего, Голица продолжал сопротивляться со своим отрядом, а Челяднин тянул время, готовясь к общей атаке всеми своими тремя линиями. Может быть, он решал, куда ударить: прямо перед собой – а польские латники как раз подставили ему фланг, загнав русских в Крапивну, – или идти на помощь Голице.
В итоге польские латники повторили свою атаку, но теперь ударили по главным русским силам. Московское войско дрогнуло и побежало.
Король Сигизмунд, с радостью извещая магистра Ливонского ордена об Оршинской победе, писал, что в плен взяты 8 верховных воевод, 37 второстепенных начальников и 1500 дворян. Всего убито было якобы 30 000 из 80-тысячного войска. Более точные польские источники сообщают, что всего в войне было захвачено 611 пленных. Что касается убитых, то гибель левофлангового конного отряда русских сомнений не вызывает, но вряд ли он состоял из 30 000 человек. А остальное московское войско, преимущественно конное, после удара польских латников, скорее всего, рассеялось, понеся минимальные потери. Впрочем, последствия сражения признавали страшными и московские источники.