Le film se déroule en 476 après Jésus-Christ, au moment de la chute de l'Empire romain d'Occident, menacé par l'arrivée des Goths venus de l'Est. Dans un empire en pleine guerre, Oreste (Iain Glen), dernier maître de Rome, fait couronner son fils, Romulus Augustus, seulement âgé de 10 ans (Thomas Sangster) et le place sous la protection du commandant Aurelius (Colin Firth). Mais quelques jours après, Rome tombe sous les coups d'Odoacre (Peter Mulan), chef des Goths, qui tue les parents de Romulus et capture le jeune prince.
Laissé en vie par Odoacre, Romulus est enfermé dans l'île-forteresse de Capri, sous la surveillance du second d'Odoacre, Wulfila (Kevin McKidd). Il y est accompagné par son précepteur, le mystérieux Ambrosinus (Ben Kingsley) à la fois philosophe et magicien. Dans le temple de l'île, Romulus retrouve l'épée légendaire de César : elle est accompagnée du message « Un côté pour défendre, l'autre pour vaincre, en Bretagne je fus forgée pour servir celui qui est destiné à gouverner ». S'emparant de l'épée, il est délivré par la petite troupe de guerriers d’élite formée d’Aurelius, de Demetrius (Rupert Friend), Batiarus et Vatrenus, à laquelle s’est jointe Mira (Aishwarya Rai Bachchan), une femme-guerrière indienne venue avec l'ambassadeur de Constantinople Theodorus Andronikos.
Trahi par le Sénat romain qui s'est rangé du côté d'Odoacre, et par l'Empire romain d'Orient qui lui refuse l’asile qu’il lui avait promis, le jeune Romulus n’a d’autre choix que de suivre Aurelius et ses hommes, venus le délivrer, et d’aller trouver refuge dans le Nord, au Royaume de l'île de Bretagne (l'actuelle Grande-Bretagne) où est censée se trouver la IXe Légion.
Mais comme le reste de l'Empire, la Bretagne est une région dévastée par la guerre : un tyran du nom de Vortgyn, lui aussi à la recherche de l'épée légendaire, menace de faire céder la dernière défense de l'Empire romain.
Malgré ses énormes invraisemblances, le film a tout de même des côtés attachants, comme l’avait aussi d’ailleurs l’Aigle de laNeuvième Légion. Il faut tout de même savoir que le personnage de Romulus, ici joué par le sympathique Thomas Sangster, n’avait, dans la réalité, rien à voir avec celui qu’on nous décrit. Il était le pur produit de générations de dégénérés et était surnommé Momyllus, ce qui signifie « la petite souillure »