The Ninth Legion led by General Titus Flavius Virilus (Dominic West) are decimated by the Pict army, leaving him and few survivors. Quintus Dias (Mchael Fassbender) leads the few remaining men to save Virilus but are unsucessful. Leaving. one of the men Thax (JJ Field) kills the son of the Pict leader Gorlacon. Enraged, Gorlacon has Virilus killed and sends his best death squad lead by Etain (Olga Kurylenko) to kill the remaining men.
The squad is broken into sides. Quintus is left with Brick and Bothos while Trax is with Marcos, who are being pursued by wolves. The traitorous Trax cuts Marcos' ankle and leaves him to die.
Quintus, Brick and Bothos make a final stand against Etain and her men. Brick is killed and Quintus kills Etain and the rest of her men. Quintus and Bothos meet up again with Thax and move back to camp. There Bothos rides ahead while Thax holds a knife to Quintus. Quintus, who knows everyone died to Thax's actions (and that he most likely killed Marcos) kills him. Bothos is mistaken for a Pict and shot with an arrow.
Quintus is debriefed but when he leaves to eat the Roman governor and other military men decide to bury the Ninth Legion from history so they won't be personally disgraced with a loss. But that means they will have to kill Quintus. Quintus escapes the attempt on his life and reunites with Arianne (Imogen Poots) away from Rome and for a life of peace.