La bataille se déroula le 28 février 1268. Les chevaliers de l'Ordre Livonien affrontèrent les troupes des Princes russes. Les deux armées se rencontrèrent à environ sept kilomètres de la ville de Rakvere. Les forces russes étaient au nombre de 30 000 soldats commandées par le prince Dimitri Ier Vladimirski. Les Croisés livoniens, danois et estoniens, au nombre d'environ 25 000, étaient dirigés par le Maître de l'Ordre livonien Otto von Lutterberg.
Face au forces supérieures russes, les Livoniens et leurs alliés séparèrent leurs forces en deux formations déployées largement afin d'éviter tout encerclement de leurs forces par l'armée russe. La première formation attaquant les Russes et la seconde tenue en embuscade devait attaquer par la suite. Mais cette tactique échoua face à la puissance des forces engagées côté russe et à la tactique rusée de faire croire à l'ennemi que la première formation, pourtant encerclée par les russes, avait fini par repousser les forces slaves. La seconde formation sortie des bois afin de poursuivre l'ennemi jusqu'à son camp. Les Russes contre-attaquèrent vaillamment et poursuivirent les chevaliers croisés dans leur retraite précipité.
La défaite livonienne fut totale et l'Ordre Livonien perdit près de 12 000 combattants, et mit plus de trente ans à reconstituer ses forces. Les forces russes perdirent environ 5 000 soldats.