Перед боем Александр Невский послал лазутчиков, чтобы узнать расположение армии рыцарей. Поэтому, когда рыцари подошли к озеру, новгородцы уже ждали их. Немцы выстроились в традиционное для северных европейцев построение, образуя своеобразный клин - с тяжелой кавалерией впереди, сзади и по сторонам, пехота расположилась в центре. Александр разделил армию на три части, оставив дружину и несколько хорошо вооруженных конных подразделений в засаде. Лучники составляли основу войска.
Утром 5 апреля 1242 года армия немецких рыцарей двинулась вперед с таким напором, что ей удалось войти в самую гущу русского войска, прорвав его центр.
Рыцари уже предвкушали победу, не подозревая, что они попали в ловушку: главные силы новгородцев (дружина и тяжелая кавалерия) прятавшиеся в засаде, атаковали рыцарей со всех сторон.
Немцы начали отступать, но собравшись, предприняли еще одну, последнюю отчаянную попытку контратаковать, которая уже не могла изменить ход битвы.