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