In the opening scene, Queen Gorgo (Lena Headey) narrates about King Darius (Igal Naor) leading his army of Persians into Greece in the Battle of Marathon in 490 BC during the first Persian invasion of Greece. The Athenian general Themistocles (Sullivan Stapleton) led his own army against them at the shores. The Greeks brutally and effortlessly take down the invading Persians one by one, paving the way for Themistocles to take aim at Darius, who is watching the massacre of his men from his ship offshore. Themistocles raises a bow and arrow, ready to commit the act that would make him known as a legend. He releases the bow just in time for Darius's son, Xerxes (Rodrigo Santoro) to watch. He runs to his father's side but is too late to save him as the arrow pierces him. Xerxes holds his father in his arms and locks eyes with Themistocles. The latter walks away, with Gorgo stating that he knew in his heart that he made a mistake not to kill Xerxes when he had the chance.
Darius is returned to his kingdom to lie in his deathbed. He and Xerxes are joined by Artemisia (Eva Green), Darius's commanding naval officer, said to be as vicious as she is beautiful. She holds Darius's hand. In his dying moments, he tells Xerxes that it is best to leave the Greeks alone, for only the gods can defeat them. Artemisia pulls the arrow out of his chest to end his suffering. For a week, Xerxes sits and mourns the death of his father. On the eighth day, Artemisia holds Xerxes and tells him that his father's last words were not a warning, but a challenge. If only the gods can defeat the Greeks, then, she tells him, he is to become the god king.
Artemisia has Xerxes sent into the desert wearing chains until he walks into a cave with a pool of bright gold liquid. Xerxes steps in, with, as Gorgo states, a dark desire for power and revenge. Xerxes emerges with a golden tinge and fiery red eyes, also hairless and a foot taller. Meanwhile, Artemisia kills off all of the former allies of the man that Xerxes used to be. He returns to Persia and stands before the citizens, with Artemisia right behind him. He declares, "For glory's sake...WAR!" The Persians cheer this on loudly.
Ten years later (in 480 BC), Xerxes makes plans to lead his army on land through Thermopylae while Artemisia is prepared to ready her navy at sea. The second Persian invasion of Greece begins.
In Athens, Themistocles meets with the council to discuss his own naval strategy for taking on the invading Persians. Although the Athenians want to desperately bring the Persians down, they are not keen on sending their men to sacrifice themselves in battle. Themistocles insists that it is in the best interests of Greece that they fight for the sake of freedom, and so he demands that he be brought the best ships to go into battle. He also tells the council he will seek help from the Spartans.
Themistocles travels to Sparta to request help from King Leonidas and his army. He walks in on a training session where a group of Spartans beat down on one man as he tries to fight back. The man gets bloodied up good.. Themistocles encounters Dilios (David Wenham), who tells him that Leonidas has already begun to lead his men on foot, adding that he already dealt with the emissary sent from Persia. Queen Gorgo speaks with Themistocles to tell him that the Spartans do not share the same ideal of a free nation in the same way that he does.
Meanwhile, a prisoner is brought before Artemisia on her ship. He chastises two of her guards for being Greeks working under a woman with Greek blood but a devotion to an enemy nation. Artemisia grabs her sword and says she may be Greek, but her heart is Persian. She decapitates the man and throws his head off the ship. She sees a soldier on the ship that she is unfamiliar with. "Well, then, allow me to introduce myself", he boasts, before killing off several Persians. He is Scyllias (Callan Mulvey), an Athenian soldier sent to spy on the Persians. He jumps into the sea and avoids being hit by the arrows of the Persians.
Scyllias, along with his son Calisto (Jack O'Connell), reports back to Themistocles and his lieutenant Aekylos (Hans Matheson). Scyllias tells them that the Persians are being led at sea by Artemisia. It is believed that she is the sole survivor of an attack on her town.
Through a flashback, we learn of her background story. As a child, a helpless and terrified Artemisia watched tearfully as her mother and father were slaughtered right before her eyes. A soldier from the invading side walks to Artemisia and kicks her square in the face. Over the years, the soldiers raped and abused the girl until they left her on the side of the streets for dead. She is found by the Persian emissary (Peter Mensah; the same one that Leonidas kicked into the bottomless pit in the previous '300' film) and is looked after by him. She planned to return to Greece when she was ready to watch it burn. Over time, the emissary trains Artemisia in combat. She proves to be quick and dangerous, and as an adult, she carries many severed heads of Darius's enemies and brings them to him, earning her the position of his general. Even with this knowledge in mind, Themistocles prepares his strategy for the battle. Aekylos points out that their small navy against the much larger Persian navy outnumbers them and that the mission is suicide. "Such is the plan," Themistocles replies.
In the present, Themistocles, confident in his men, leads them all out to the Aegean Sea, where Artemisia is leading her navy. Her general Artaphernes (Ben Turner) tells her that General Bandari (Ashraf Barhom) has prepared his strategy to lead the ships against the Greeks. Themistocles stirs up confidence by encouraging the men to fight with those standing by their side. The Athenians ram their ships into the Persian ships, charging at them with full force and fury. This leads to another bloody fight with many Persians dying at the hands of the Athenians. Scyllias and Calisto fight side-by-side, with Calisto hurling his spears at the Persians.
Artemisia, displeased with the results, has Bandari chained and thrown into the sea where he sinks to his watery grave. The generals think she is disappointed with the loss of her men, but she admits to being disappointed in them specifically. She ponders the thought of having somebody standing by her side.
The next day, the Athenians cause the Persians to sail their ships through a crevice, causing the leading ship to get stuck and have the other ships crash into it. From atop the cliffs, the Athenians jump in and continue to slaughter the Persians. The second general to lead them, Kashani (Christopher Scieueref) is killed by Themistocles. Scyllias sees Calisto jumping into the fight, but clearly not wanting to see his son get hurt. Artemisia watches from her ship, admiring Themistocles's tactics and command.
Artaphernes rides a boat to the shores where the Athenians have set up camp to bring Themistocles onto Artemisia's barge. She commends his skill during the battle when she takes him into her private chambers. She asks him if there happens to be somebody back in Athens for whom he fights. Themistocles states that he has had no time for a family or children. Artemisia offers him a chance to join her so that he will not have to live with conflict or responsibility. The two of them then start having rough, passionate, and violent sex (which her guards can clearly hear). When Artemisia echoes her offer, Themistocles simply states no, and Artemisia angrily throws him off of her, hissing to him that he is no god, but merely a man. Themistocles returns to the camp, warning his men that Artemisia is prepared to bring hell to them.
On the next day of battle, the Persian ships release tar into the ocean, along with several guards swimming out to the Athenians with explosives strapped to their backs. The Athenians fight off the guards until Artemisia fires her arrows. The Persians hurl flaming arrows to ignite the tar. Artemisia fires more arrows, striking three into Scyllias as Calisto watches. On one of the Persian ships, a large Persian hurls torches to continue igniting the fires. He is struck with an arrow, and he drops the torch on himself, setting himself ablaze. He falls off the ship into the spilling tar, sending a wave of fire onto an Athenian ship, but also back onto the Persian ship, causing it to explode. Artemisia sends another flaming arrow to hit the back of a Persian with an explosive on his back, just as he climbs onto Themistocles's ship. He orders everyone to abandon ship and he lunges toward the Persian. Before he can strike him, the explosive goes off and destroys the ship, taking Themistocles down with it. Artemisia watches proudly as her enemy sinks. In the ocean, Themistocles sinks among the bodies of his fallen comrades. He sees two serpent-like creatures swim to them and devour them before one lunges at him.
Themistocles is snapped out of this dream by Calisto. He realizes this event may have been brought upon him to subdue his ego or to remind him of the mistake of not killing Xerxes. Themistocles walks over to Scyllias's side as he is dying. He urges his friend to continue the fight and tells him something else before finally passing. Themistocles mourns his friend. Calisto asks Themistocles what his father's last words were, but Themistocles says he will tell him in time.
Meanwhile on land, Xerxes and his army have just killed off Leonidas and his 300 Spartans after the brutal three-day Battle of Thermopylae (a brief flashback to the previous film). The birds pick at the eyes of the dead Spartans while the Persians continue marching onward victoriously towards Athens. The news of the defeat reaches Themistocles through a messenger. He returns to Sparta to confront Ephialtes (Andrew Tiernan), the deformed hunchback that betrayed the Spartans and sold them out to Xerxes. Seemingly remorseful for his actions, he does not cower when Themistocles lowers his sword to him, saying that there is little beauty in him, and even less in what he's done. Ephialtes adds that Xerxes is leading his army to Athens, preparing to destroy it. Themistocles leaves him alive so that he may carry the message back to the Persians saying that the Greeks will fight to the death.
Themistocles goes to speak to Queen Gorgo. Dilios, now half-blind, warns him to not expect a warm welcome. Gorgo is still in mourning of her husband. Although Themistocles urges her to aid in the continuing battle, she refuses to send anymore husbands, fathers, and sons out to be sacrificed any further. He hands her the sword of Leonidas, saying it belongs with her. Gorgo tears up at the sight of it.
The Persian army takes Athens. Xerxes holds the head of Leonidas boastfully over the city as his men lay waste to the people and burn everything down. He continues to brag about his victory and states that Themistocles was nothing but a coward. Ephialtes returns to Xerxes and Artemisia to report that the Greeks are continuing to take their battle back into the sea, led again by Themistocles. Hearing his name and realizing he's not dead, Artemisia vows to end the Athenians once and for all. She leaves to prepare her command.
Themistocles acknowledges that his men may be weary of continuing the fight, knowing they too would refuse to see anymore bloodshed. He encourages them to act for themselves and leave now if they wish so that they may maintain their freedom, but also encourages them to stay and fight. "Let it be shown that we chose to die on our feet, rather than to live on our knees!" The Athenians cheer.
The limited number of Athenian ships face the huge Persian fleet at the sea in their final battle. Themistocles tells Calisto his father's final words, which was to say that he has earned himself a place at the table (he's ready to fight). Once again, both Themistocles and Artemisia are set to lead their men into battle. The climatic naval Battle of Salamis begins. Their ships collide, and the Athenians charge against the Persians, fighting quickly and mercilessly. Not ready to stand idly by, Artemisia wields her two swords and fights against the Greeks, killing off as many as she can on her own.
Themistocles rides his horse through the battle until he reaches Artemisia's ship. He reminds her of her earlier offer, stating that he still says no. Angered, she begins to fight him in a duel. He fights with great fury, and she quips that "he fights harder than he fucks". They continue to fight until they hold both their swords at each other's necks. Themistocles continues to refuse the idea of joining Artemisia, and he tells her that it is time for her to surrender.
We see Gorgo leading her army of Spartans, having been telling them the story from the beginning, leading into her own rousing speech as they come closer to surrounding the Persian fleet. In addition, armies from other allied nations join in the fight. Themistocles points this out to Artemisia as he still has her with his sword to her throat. He urges her to surrender. She chooses not to, and she grabs her sword to kill, but Themistocles quickly drives his sword into her stomach. Artemisia drops to her knees. In her final moments, she watches as the allied forces surround her navy. Xerxes, watching from the cliff side, turns his back on her. Artemisia finally collapses, dead, just as Gorgo and Dilios step onto her ship to stand by Themistocles.
The film ends with the Spartans and Athenians banding together to defeat the Persians once and for all. It was later recorded in history that the naval Battle of Salamis was one of the most decisive battles of the ancient world and the allied Athenian-Spartan victory forced the Persians to retreat from Greece for good.