A captive Greek, named Xeones, dictates his story to a scribe who works for the Persian King, Xerxes. The scribe forewarns Xerxes that the story contains much foul language, but the King wants to read exactly what Xeones has to say. Xeones sustains life-threatening battle wounds, and he had been dead for a short period before the Greek god, Apollo, sends him back to his wracked body in order to tell the story of the Battle of Thermopylae.
Xeones, at nine-years-old, loses his city-state to an invading force. He runs to the mountains with his cousin, Diomache, and an old slave, named Bruxieus. The boy survives and learns to be an archer. Bruxieus dies and the two children head toward Athens. Xeones continues on to Sparta while Diomache goes into Athens.
The Spartans take on Xeones as a helot and give him to Dienekes, an old soldier, as a battle squire. Xeones becomes the sparing partner of Alexandros and a friend to the malcontent Rooster. Against his mother's will and the rules of Sparta, Alexandros follows the army into battle. Xeones accompanies him, and they witness how the Spartans fight.
The Persian army threatens to invade and take Sparta. The Spartans, under the leadership of Leonidas, select 300 soldiers to go on a suicide mission, among them Dienekes. Picking up allies along the way, the total Hellenic force of about 4,000 prepares to fight a much larger force of Persians. On August 18, 480 BC, the Battle of Thermopylae begins.
The Spartans and their allies do surprisingly well against the Persians, who must feed their troops through a narrow mountain pass onto a battlefield that has a drop-off to their rear. The Thespians and Spartans form phalanxes that charge the Persian line from the mountain side of Thermopylae. The Persian line cannot hold against the heavy Greek infantry. Throughout the day, many Persian troops die but only a few Greeks.
On the second day of battle, the Persians lose many more of their number. Xerxes learns of a...