28 июля сербы, пользуясь беспечным поведением болгар, решили напасть на противника. Со стороны сербов битвой руководил Стефан Душан. В центре построились 300 (по другим данным тысяча) немецких рыцарей, чья атака смяла врагов. Внезапная атака сербов деморализовала болгарские войска. Михаил III Шишман отчаянно пытался восстановить порядок в войсках, но его конь споткнулся, а сам болгарский царь упал, попутно ранив себя и вскоре был убит сербами (впрочем, есть и другая версия: болгарский царь был сильно ранен в ходе боя, взят в плен и через 3 дня скончался). Болгарский лагерь был взят, болгарские бояре пленены, а само войско было полностью разгромлено. Всё поле боя было покрыто телами воинов. Лишь единицы спаслись бегством.