117 год нашей эры. Римская империя уже двадцать лет безуспешно пытается захватить Северную Британию и покорить пиктов. Это храбрый народ, который живёт на этих землях. Центурион Квинт уже два года несёт службу на самом рубеже Римской империи. Римляне страдают от постоянных партизанских набегов пиктов. Они ещё никогда не вели подобную войну. Сегодня дикари устроили самую массовую и дерзкую атаку на лагерь. Захватчиков перебили за считанные минуты. В живых оставили только Квинта, потому что он знает язык пиктов.
Мы переносимся в гарнизон девятого легиона. Один солдат проиграл Вериллу десять раз подряд в борьбе на руках, но не смог смириться с поражением. Поэтому он стал угрожать сопернику ножом, чтобы тот вернулся за стол. Верилл победил и в одиннадцатый раз, а затем прибил руку солдата ножом к столу. В итоге развлечение закончилось массовой дракой. Генерал Верилл любит проводить время среди простых солдат. Из-за этого гонец не признал его и нахамил военачальнику. Римский наместник Агрикола мобилизует девятый легион, так что им пора отправляться в путь.
Тем временем Квинта притащили к предводителю пиктов Горлакону. Тот был простым крестьянином, пока солдаты не убили его жену. Военачальник помочился в бочку, после чего Квинта начали в ней топить. Горлакон подозвал сына, чтобы тот посмотрел, как пытают врага. Пока пленника кинули в темницу, а Агрикола приказал Вериллу разобраться с этими пиктами. Генерал мечтает наконец вернуться в Рим. "Твой девятый легион способен сокрушить этих пиктов. Ты и твои воины сможете уйти на покой в достатке и почестях." Верилл понимает, что необходимо добраться до главного лагеря Горлакона. В этом ему поможет Тайн — немая воительница и следопыт, которая отведёт девятый легион в горы. Где-то в снегах спасается бегством из плена Квинт.
Римский легион ровным строем выдвинулся в путь. Они устроили лагерь посреди леса. Квинт стал приставать к Таксу и тут же получил за свои выходки. Квинт добрался до леса, где его как раз настигли всадники. О погоне узнал Верилл и поспешил помочь пленнику. Вероятно, он римлянин. Солдаты перебили пиктов, захватив одного из них в плен. Но так как тот будет молчать до последнего, воину перерезали горло. Квинт за своё спасение должен быть благодарен разведчице Тайн. Центурион рассказал о судьбе своего лагеря. Уже завтра ему придётся снова столкнуться с пиктами.
Утром армия двинулась в поход. Разведчик Горлакона был уже неподалёку. Тайн глянула на римлян и ускакала вперёд, скрывшись в тумане. Солдаты продолжили свой путь. Вдруг им перекрыло дорогу поваленное дерево. Римляне догадались, что это ловушка. Воинам было приказано принять оборонительный строй. Они встали спинами друг к другу и выставили копья вперёд. Из тумана послышались крики дикарей. С обоих склонов на римлян покатились здоровенные огненные шары. Сохранить строй не вышло. Солдат раскидало по сторонам. Сразу после этого на дорогу выбежали пикты и принялись вырезать ошеломлённое войско противника. Издалека по врагу работали лучники.
Когда к месту битвы прискакал Квинт, его сбили с лошади. Сверху мужчину привалило горой трупов. Верилл был захвачен в плен. Спустя какое-то время Квинта из-под тел достал Бот. Кажется, выжил только он и старый воин Кирпич. Квинт осмотрел поле битвы. Весь девятый легион — три тысячи солдат — был уничтожен. Тут позади показались ещё несколько выживших: темнокожий боец Макр, разведчик Леонид и пошляк Такс. Квинт намерен пойти за пиктами и освободить военачальника. Вдруг на римлян побежал одинокий дикарь. В него метко бросил топор Тарок. Правда, он не солдат, а повар.
Группа отправилась в опасный путь. Чтобы не отставать от пиктов, им пришлось сбросить свои латы. Римляне прячутся в кустах и за деревьями. Дикари устроили охоту на их товарищей. Среди палачей была и жестокая воительница Тайн. Она изначально заманивала армию врага в ловушку. Отряд забрался в пещеру, чтобы отдохнуть и перекусить. Они чуть не наелись поганок. Хорошо, что Тарок разбирается в грибах. Кирпич объяснил происхождение своего имени. "Сокращённое от «кирпичикуса. Твоя мать, похоже, была смышлёной. Она была сумасшедшей."
К пленному Вериллу подошли Горлакон и предательница Тайн. Когда ей было шесть лет, римляне выжгли глаза её отцу и надругались над матерью у неё на глазах. В конце концов Тайн отрезали язык. Она была единственной выжившей из всей деревни и с радостью выполнила свою миссию, заманив сюда войско. Лигионеры забрались на холм и осмотрели лагерь пиктов. Когда стемнело, они совершили вылазку. Сняв часовых, римляне добрались до домов дикарей. Верилла охранял отряд из четырёх человек. Вырезав его, римляне принялись освобождать генерала, прикованного к камню.
Такс увидел разведчиков, которые возвращались в лагерь, и забежал в дом. Там находился сын их предводителя Горлакона. Такс принялся душить наследника. Квинт, как ни старался, разогнуть цепи так и не смог, поэтому генерала пришлось оставить. К тому моменту мальчик был уже мёртв. Миссия провалилась, и солдатам пришлось вернуться в лес ни с чем. Утром Горлакон сжёг тело своего сына. Он пообещал Вериллу, что все его убийцы будут найдены.
Враги не знают, что их железо не гнётся. Оно ломается. После одного удара топора цепь лопнула. Генералу кинули меч. Его хочет убить лично воительница Тайн. Девушка, вооружённая копьём, яростно пошла в атаку. Верилл был ослаблен, но сопротивлялся, пока у него хватало сил. Когда он больше не мог поднять меч, Тайн резала его и пронзила сердце врага копьём. После был сожжён орёл девятого легиона. Выжившим приходится спасаться, бегая по горам. Им нужно запутать свои следы. По-другому они домой не вернутся.
Задача вычислить беглецов легла на плечи Тайн. Пикты не спят и не едят, пока не найдут врага. Они всегда настигают свою добычу. Римлянам важно не останавливаться, как бы они ни уставали. Бежать, несмотря на холод и голод. В какой-то момент Леонид свалился с ног от усталости. Марафонец Макр предложил прикончить слабака, чтобы он их не задерживал. Но Квинт пообещал генералу спасти их всех. Ночью пикты покрасили лицо синей краской. Это означает, что они скорее умрут, чем отступят. Утром римляне проснулись в сугробе, занесённые снегом. Наконец они стали спускаться вниз, в сторону леса.
Леонид убил оленя при помощи орудия. Изголодавшиеся солдаты напились тёплой крови и съели наполовину переваренный мох из желудка оленя. Вскоре останки животного обнаружила Тайн — значит, они на верном пути. Отряду пришлось ускориться. Вдруг Тарок упал на землю и закричал во всё горло. Он сломал ногу. Пикты его, конечно же, услышали. Тайн выпустила из лука стрелу, которая чуть не попала в голову Квинта. Римлянам необходимо забраться на высокий холм, таща за собой покалеченного повара.
Варвары спешились и также начали взбираться на холм. Впереди беглецов ждал обрыв. У них не было выбора, поэтому солдатам пришлось прыгать в реку с высокой скалы. Тарок ждал своей очереди, но тут ему в спину прилетели две стрелы. Тайн метнула топор в Квинта. Он увернулся и также прыгнул в горную реку. Впереди все солдаты смогли выбраться на берег. Правда, Макра и Такса отнесло течением дальше товарищей. Мимо них проплыло тело убитого повара. Пикты продолжили поиски, двигаясь вдоль реки. Но Тайн вдруг вернулась. "Вот ведьма, как ей это удаётся. Это не магия, она следопыт, а ветер дует в её сторону."
Леонид чувствует себя паршиво после падения. Хитрый Квинт решил наведаться с Кирпичом в лагерь дикарей, чтобы немного уравнять их силы. Перед смертью Пит рассказал, что один из римлян убил сына Горлакона. Вот почему они за ними гонятся. В это время Тайн со второй половиной отряда нашла и убила Леонида. Бота они ранили и оставили истекать кровью. Товарищи нашли солдата, перевязали его рану и потащили дальше на своих плечах. В то же время гонимые волками вперёд несутся Макр и Такс. Таксу не поспеть за марафонцем, а тут он и вовсе свалился с ног. Воин вернулся, чтобы ему помочь, и тут же был вероломно ранен в ногу. Такс предпочёл, чтобы волки съели Макра, а не его.
Отряд Квинта вышел на опушку леса, где стоял дом. Внутри горит костёр. Центурион вышел наружу и столкнулся с молодой девушкой. Она просит грабителей убираться. Квинт отдал хозяйке свой меч, чтобы она не боялась. Вскоре они оставят её в покое. Ариана рассказала, что в двух днях пути отсюда размещён римский военный лагерь. Солдаты считают девушку ведьмой, поэтому не лезут к ней. Ариана попытается залечить рану Бота. Кирпич увидел, что ведьма кинула в котёл бледные поганки. Видимо, она хочет их отравить. Вот только Кирпич так и не научился отличать поганки от других грибов. Ночью Квинт рассказал Ариане, что на них охотится Тайн.
Утром Квинт вышел писать в реку по течению туда, где стояла Ариана и ловила рыбу. Нехорошо так поступать со своим завтраком. Сюда прискакали пикты. Убегать уже поздно. Ариана велела римлянам спрятаться под пол и вышла к воинам. В дом ворвалась Тайн и начала искать следы врага. Ариана ей нахамила, чтобы отвлечь. Жаль, Тайн не может перерезать ведьме горло, иначе проклятие ляжет на её народ. Пикты отправились искать римлян дальше.
Квинту интересно, почему девушка помогает им, а не своим. Дело в том, что племя отказалось от неё. Горлакон обвинил Ариану в колдовстве и оставил на щеке здоровенный шрам, обрёк на жизнь в одиночестве. Римляне остались в этом доме ещё на одну ночь. Кирпич извинился перед хозяйкой за то, что был с ней груб, а Квинт, кажется, влюбился в эту отшельницу. Но утром ему пришлось с ней попрощаться. Троица направилась в лагерь к своим. Спустя время Бот упал на землю. Нога до конца так и не зажила. Благо, они как раз дошли до лагеря. К сожалению, он был пуст. Агрикола приказал отступить. И теперь на этих землях больше нет римлян, кроме наших героев. Сюда также приехали пикты.
Римляне собрали оружие и начали готовиться к обороне. Квинт поджёг перед воротами телегу с хворостом. Бот убил первого пикта из лука. Кирпич попал копьём в коня. Всадник перепрыгнул через телегу и вступил в схватку с Квинтом. Тот его скинул с коня и зарубил. На стену забрался здоровяк Вортикс и сцепился с Ботом. Тайн ранила из лука Кирпича. Квинт не может помочь друзьям, потому что занят своим противником. Но Кирпич справился сам. Он сломал стрелу и вонзил её в глаз Тайн. Увы, его самого пронзило насквозь копьё Тайн.
Следующим должен стать Квинт. Волчица налетела на центуриона и выбила из его руки меч. Бот всё ещё сражается с Вортиксом. Он упал вниз, и Тайн чуть не перерезала солдату горло, но в итоге он заколол копьём Вортикса, а Квинт зарезал и Тайн. Кровавая битва была окончена. Из всего легиона в живых осталось только двое. Однако ночью бойцы услышали шум. К ним незаметно подобрался Такс. Такс рассказал товарищам печальную историю о том, как Макра сожрали волки.
Спустя какое-то время легионеры наконец доскакали до строящейся римлянами стены. Радостный Бот поскакал вперёд, забыв, что на нём шкуры, а не латы. Такс приставил меч к телу Квинта. Он не хочет, чтобы кто-то узнал, что остатки легиона погибли из-за его поступка. Однако Квинт стал бороться за свою жизнь. Во время драки он задушил Такса. В то же время лучник, увидев всадника в шкурах, всадил в него стрелу. Так из всего легиона в живых остался только Квинт.
Агрикола поприветствовал центуриона и велел ему идти отдыхать. Но он не может вернуться в Рим с позором. Нужно сохранить в тайне судьбу девятого легиона. Им придётся избавиться от единственного свидетеля. Дочь Агриколы налила Квинту вина и приказала страже зарубить его. Но тот расправился с солдатами, вырубил Друзиллу и бежал из лагеря. Пошёл туда, где он свой, — к отшельнице Ариане, также преданной своим народом.