Атака крестоносцев была сокрушительной – с разгона они вломились в новгородский строй и проломили его, сбивали ратников напором коней, прокалывали пиками насквозь, рубили мечами и боевыми топорами, крушили тяжелыми палицами. Лед мгновенно покрылся кровью, русские пятились, пытались укрыться от града сыпавшихся на них ударов, но спасения не было – «свинья» перла вперед, все сминая на своем пути. Под страшными ударами тевтонцев трещали и раскалывались щиты, разлетались на куски русские шлемы, а кольчуги не могли защитить от длинных и тяжелых рыцарских пик. Затем подошла орденская пехота и с ходу вступила в сражение – большой полк дрогнул, попятился и, теряя людей, начал медленно отступать. Крестоносцы отбросили русских со льда озера, и сражение теперь кипело на суше, новгородцы сражались отчаянно, отбивая в центре атаки тяжелой кавалерии, а на флангах сдерживая натиск пехоты. Ударами боевых топоров они остановили закованных в доспехи всадников и совершенно расстроили их ряды, а самые ловкие подныривали под немецких лошадей и засапожными ножами вспарывали им брюхо. Кони с грохотом падали на землю, увлекая за собой закованных в доспехи всадников, которых тут же и добивали моментально окружавшие поверженных рыцарей русские ратники. И все-таки войска ордена одолевали, и разгром новгородцев становился лишь вопросом времени. Но крестоносцы слишком увлеклись битвой и совершенно забыли о своих флангах – и, как оказалось, зря.
Без звуков труб справа и слева обходили место сражения суздальская и переяславская дружины, всадники заходили немцам в тыл и там разворачивались для атаки, а пехотинцы выдвигались на фланги. И когда по приказу князя протрубил боевой рог и конные дружины пошли в атаку, для немцев это было подобно удару грома в ясный день. Увидев надвигающиеся на них две конные лавины, воины, набранные орденом из подвластных племен, развернулись и обратились в бегство, бросая оружие, знамена и щиты. Далеко не ушли, часть из них попала под копыта бешено мчавшихся коней княжеских гридней и была просто растоптана, за другими погнались младшие дружинники, на всем скаку рубя беглецов мечами и саблями. Немецкая пехота не успела перестроиться и отразить атаку с тыла, а попытка датчан задержать дружины потерпела крах – длинными копьями гридни на полном скаку вышибали из седел западных рыцарей, которые вместе с конями валились на весенний лед. Князь Александр во главе переславской дружины врубился в плотные ряды крестоносцев и стал прорубаться к центру сражения, а суздальские гридни Андрея разбили вставших на их пути сержантов и «полубратьев», а потом начали сечь орденскую пехоту. Затем на крестоносцев навалились пешие суздальцы, строй немецкой «свиньи» дрогнул и распался – братья-рыцари, которые бились на острие клина, ничем помочь своим товарищам по оружию не могли, поскольку сами увязли в пеших порядках новгородцев. Русские клещи сомкнулись вокруг боевого строя орденских войск, и начался их разгром – немецкие колонисты, составлявшие костяк пехоты крестоносцев, побросав снаряжение, побежали прочь, надеясь выбраться из этой западни. Но рыцари, «полубратья» и сержанты сдаваться не собирались, они пошли навстречу русским дружинам и лицом к лицу сошлись с ними в отчаянной рукопашной схватке.
Однако зажатые на узком пространстве ливонцы не могли развернуться, один за другим падали белые знамена с черным крестом на залитый кровью лед, и русские ратники шли вперед, круша немецкую силу. Навалившись всей плотной массой, немцы прорвали кольцо окружения и бросились прочь, устилая лед телами павших товарищей. Следом за ними пошла в погоню русская конница, они гнали разбитых крестоносцев по озеру, не давая тем ни минуты отдыха. И лишь когда передовые русские всадники достигли противоположного берега озера, князь Александр остановил погоню – победа и так была полной, а идти в глубь вражеской территории было бы неосмотрительно.