Русское войско рассчитано с точными цифрами: «Князь великий изчислил все войска, которых с ним было: киевских, переяславских, городенских, черных клобуков и поросян (жителей по реке Роси. —
Начало было успешным для русско-половецкого войска. Мстислав Удалой переправился через Днепр с 10 тысячами конников и разгромил передовые отряды татар. Любопытно, что татарский «воевода» Гамябек, по Татищеву, надеялся на помощь половцев и «ушел в курганы половецкие». Но половцы пришли на помощь Мстиславу и перебили всех взятых в кольцо татар.
В течение восьми дней русские дружины продвигались в глубь степи на восток, уничтожая татарские дозоры и разъезды. Но с самого начала обнажилась слабость многочисленного русского войска: они ничего не знали о противнике и не сумели организовать эффективную разведку. Кроме того, отсутствовало единое командование, и каждый князь со своей дружиной самостоятельно решали, что и как им делать. Все это предопределило поражение русско-половецкого войска.
Мстислав Удалой вырвался вперед и успешно продвигался в сторону основных татарских сил, а Мстислав Романович Киевский осуждал этот задор, поскольку считал себя главным (формально он таковым и являлся в качестве великого князя Киевского) и потому никакого содействия галицкому князю не оказывал. А с началом битвы он со своим войском создал отдельный укрепленный лагерь в некотором отдалении от места сражения, не участвуя непосредственно в бою. В этом бою с основными силами монголо-татар русско-половецкие полки потерпели поражение. В результате же бежавшие с поля боя половцы расстроили дружины и киевского князя, и находившихся под его началом дружины других князей. Киевский князь заперся в своем лагере.
В отличие от русских князей, монголы всегда придавали большое значение разведке. На службе у татар каким-то образом оказались бродники во главе с Плоскиней. Именно Пло-скиня уговорил киевского князя капитулировать, уверяя, что всех князей с почетом отпустят. И именно Плоскиня советовал татарам перебить всех плененных князей (хотя татары в такого рода советах никогда не нуждались). В итоге же всех плененных воинов татары перебили, а князей распластали по земле, положили на них доски и сели пировать. Вырваться с поля боя удалось только Владимиру Смоленскому, Мстиславу Удалому, молодому волынскому князю Даниилу и Мстиславу Луцкому.
Разгромив половцев и русские войска на Калке, татары устремились к Днепру и Северской земле, причем теперь проводниками у них были половцы. Татар, подошедших к Новгороду Северскому, горожане наивно встретили с крестами. Но татары вели себя как обычно: брали в полон, жгли, убивали.
Однако для дальнейшего продвижения у татар уже не было сил. На путях к Днепру и Северской земле они также несли большие потери от рассеянных небольшими группами остатков русских дружин. Владимир Рюрикович, князь смоленский, ночью ушел от Мстислава Киевского и собрал из разбежавшихся в разные стороны русских воинов отряд в 5000 человек. Этот отряд нанес татарам значительный урон, успешно отбивая нападения преследователей. Он возвращался в Смоленск, когда его перехватили киевляне и пригласили на княжение в Киев. На вече он был избран киевским князем.