17 серпня об’єднане військо Данила дісталося Ярослава. Ростислав залишив свою піхоту захищати штурмові тарани навколо міста і на чолі кінноти вступив у битву. За словами літописця, у момент першого зіткнення армій «зломилися списи, і був гук, як від грома; з обох боків багато впало з коней і вмерло». Данило у бою також зламав свій спис і роздер угорську корогву.
Першими почали відступати дружина Ростислава та боярські загони, згодом – угорські лицарі. А польські вояки, які перед битвою погрожували галичанам: «Поженемо ваші великі бороди», – під натиском дружини Василька вдалися до втечі.
Перемога Данила і Василька під Ярославом підсумувала сорокалітню міжусобицю у Галицько-Волинській державі та позначила остаточну поразку боярської опозиції.