Монголы бездействовали, спор затянулся до полудня, общего решения так и не приняли, а дальнейшие действия союзников оказались наихудшими из возможных. Самоуверенность достигла такой степени, что каждый из князей решил действовать самостоятельно. Мстислав киевский остался в укрепленном лагере на правом берегу Калки, а волынская дружина Данилы и половцы хана Яруна начали форсировать реку. Следом за ними стали переправляться галичане, а неподалеку от них черниговцы, которые из-за самоуправства Мстислава Удатного чрезвычайно запоздали. После короткой перестрелки половцы и волыняне начали теснить передовые отряды монголов. Стрелы стали долетать уже до первых рядов основного монгольского войска, но Субудай не отвечал, и только когда отдельные части наступавших максимально оторвались друг от друга, отдал приказ своим воинам начать контратаку.
Монголы имели традиционное построение: центр – элитная тяжелая конница самого Субудая, правое крыло – более легкая конница Джебэ, левое крыло ханов Тсугира и Теши, состоящее из половцев, курдов, аланов и прочих народов, вливавшихся по пути следования в монгольское войско. Силы монголов на Калке оценивают обычно в 25–30 тыс., почему-то забывая, что у восточных авторов речь идет о самих монголах – участниках экспедиции. Несмотря на потери, это войско, уступая в качестве, количественно росло за счет вливавшихся в него тюркских и прочих кочевников. Возможно, силы монголов на Калке даже превосходили силы союзников. Но главным их преимуществом все же были дисциплина и тактическая грамотность. Пропуская отступающих легких лучников, ряды монголов расступились, затем снова сомкнулись и поскакали навстречу половцам и волынской дружине. Произошла страшная копейная сшибка тяжеловооруженных конников.
Данило был ранен в грудь, но продолжал сражаться. Его воеводы Семен Олюевич и Василько Гаврилович умело руководили боем, однако очень быстро выяснилось, что силы волынян тают, а куда более многочисленные галичане Мстислава находятся слишком далеко, чтобы к ним присоединиться. Волыняне, возможно уже под руководством дяди Данилы – князя Мстислава Немого, стали медленно отступать. Зато половцев, явно не готовых к бою с тяжелой кавалерией, охватила паника. Не исключено, что усугубило ее то, что часть из них вообще перебежала на сторону монголов. Постепенно отступление превратилось в бегство. Ни раненый Данило, ни хан Ярун уже не могли ничего поделать. В это время еще не знающее, как развиваются события, галицкое войско Мстислава Удатного в боевом порядке шло навстречу основным силам монголов. Бегущие волыняне и половцы сломали его строй, и пока галичане перестраивались, Субудай ударил по ним с флангов. Перестроившись, закованная в доспехи тяжелая галицкая кавалерия «свиньей» ударила в центр монголов, но оказалось, что силы ее недостаточны, чтобы его протаранить: элитные монгольские части по своему вооружению и боевым качествам ей отнюдь не уступали. К тому же, не желая оголять фланги, Мстислав сильно растянул свое войско, и постепенно в нескольких местах его строй начал разрываться. Сказалось элементарное численное превосходство монголов, в случае равных потерь явно для них выигрышное. Стоит отметить, что не поддавшаяся панике и не перешедшая на сторону врага часть половцев (прежде всего аристократы) до конца стойко защищала фланги галичан и не давала окружить дружину Мстислава целиком. Но быстро таявшее войско постепенно превратилось в отдельные отряды, начавшие панически отступать к Калке.
Наиболее нелепо сложилась судьба черниговской дружины. Отставшее войско Мстислава Святославича еще только заканчивало форсирование реки, как было опрокинуто волной бегущей конницы. Не успевших ни построиться, ни приготовиться к бою воинов тут же атаковали монголы и обратили в бегство. Конный авангард черниговцев под командованием Олега курского еще до того присоединился к галичанам, но также был смят превосходящими силами врага.
К вечеру стало ясно, что переправившиеся на левый берег Калки войска союзников постиг полный разгром. Оставшиеся на противоположном берегу киевляне могли его только наблюдать. Помочь чем-либо отступающим было уже поздно. Еще с утра по приказу Мстислава Романовича киевляне вместе с оказавшейся не у дел тяжелой галицкой пехотой окружали свой лагерь возами и вбивали колья на наиболее опасных направлениях атаки. В неразберихе после битвы любая контратака была бы уже бессмысленна, а отступление невозможно. Многие из отступавших пытались присоединиться к киевлянам, но подвижные монгольские конники отсекали их от укрепленного лагеря и гнали в степь.
Часть сил Субудай оставил для блокады лагеря, часть бросил на преследование беглецов. Судя по всему, к монголам присоединилась и часть половцев – изощренная пропаганда делала свое дело. Во всяком случае летописи обвиняют их в «избитии» отступавших русинов, и едва ли это было просто мародерство.