Венгерский король Бела IV решил воспользоваться трудным положением Галицко-Волынского княжества, разоренного монгольской ордой, и начал полномасштабное вторжение на Юго-Западную Русь. Венгерская армия под командованием бана Фильнея и претендента на Галич князя Ростислава Михайловича перевалила через Карпаты и подошла к городу Ярославу. Вместе с венграми на Русь пришли польские отряды под командованием воеводы Флориана. Фильнея смутили как мощные укрепления Ярослава, так и сильный гарнизон, засевший в городе. Военачальник не рискнул начинать штурм, снял осаду и напал на город Перемышль. Перемышль был взят, однако Фильней не оставлял мысли захватить Ярослав и вновь вернулся к городу. Под руководством князя Ростислава началось сооружение осадной техники, но в это время русские сделали вылазку, под городом разыгралось большое сражение и венгры отступили с занимаемых позиций. Когда защитников оттеснили за стены, Ростислав приказал продолжать сооружение осадных машин. Сам князь решил отдохнуть от ратных трудов и устроил рыцарский турнир.
Даниил Галицкий и его брат волынский князь Василько узнали о вторжении и отправили гонцов к Конраду Мазовецкому и литовскому князю Миндовгу с просьбой о помощи. Но пока союзники собирали войска, русские полки выступили против Фильнея и Ростислава. Впереди шел сторожевой полк дворского Андрея, следом двигалась половецкая конница, за степняками шли главные силы русской рати. Дворский Андрей должен был выяснить расположение сил противника и дать знать защитникам Ярослава, что помощь близка. Русские дружинники шли налегке, на берегу реки Сан дворский Андрей приказал воинам спешиться, облачиться в доспехи, снова сесть на коней и переходить на противоположный берег. Брод через Сан был глубоким, удивительно, что Фильней с Ростиславом даже не выставили вдоль реки отряды прикрытия. Подошла рать во главе с князьями Даниилом и Васильком Романовичами. Сначала через реку переправились половцы, затем Сан стали переходить полки и дружины. Степняки устремилась вперёд, где без охраны бродили многочисленные стада венгров, однако одумались и остались прикрывать переправу. Русская рать перешли Сан, развернулась в боевые порядки и начала движение к Ярославу. Вместе с Даниилом был его малолетний сын Лев, князь поручил охрану наследника опытному воину боярину Васильку. Боевой дух русских воинов был высок, гридни и ратники рвались в битву.
Получив весть о приближении противника, Фильней и Ростислав изготовили войско к сражению. Опасаясь удара в тыл гарнизона Ярослава, князь оставил пехоту напротив городских ворот и повел против Даниила русских дружинников, венгерских и польских всадников. Войско Ростислава перешло глубокий овраг и стало разворачиваться для атаки на полк Даниила, но неожиданно подверглось нападению дружины дворского Андрея. Началось ожесточенное кавалерийское сражение, изломав в первом столкновении копья и пики, воины сошлись в рукопашной схватке. Множество всадников было выбито из седел, с той и другой стороны оказалось много убитых и раненых. Через некоторое время Ростиславу удалось потеснить русских, но Даниил вовремя заметил опасность и отправил на помощь Андрею 20 бояр с конными дружинами. Однако бояре Василий Глебович, Всеволод Александрович и Мстислав испугались, побежали к реке Сан, чтобы переправиться на левый берег. Андрею пришлось вести бой против превосходящих сил противника, воевода объезжал поредевшие ряды дружинников и удерживал их от беспорядочного бегства. В это же время польские отряды воеводы Флориана атаковали полк князя Василька Романовича, оглашая окрестности пением «