XIII век. Войско хана Батыя сокрушает русские земли, стремительно продвигаясь к Новгороду. Перед решающим ударом Батый решает захватить Козельск — небольшой город, правящийся малолетним князем Василием. Численное и военное превосходство монголов очевидно, но местные жители оказывают яростное сопротивление, выдержав почти два месяца осады.
Дружинники и горожане, от монаха Ратши до воеводы Вадима, встают на защиту родного края. Их мужество и стойкость наносят врагу огромные потери, но силы неравны. Когда Батый, наконец, берёт Козельск, он, поражённый яростью его защитников, называет город «злым», пытаясь стереть его имя из памяти поколений.