During Christmas 1955, an 11-year-old Hellboy is told a bedtime story by his adoptive father, Trevor Bruttenholm, involving an ancient war between human and magical creatures, started by human’s greed. After defeat of the magical creatures’ forces, the master of the goblin blacksmiths offers to build an indestructible mechanical army for the elven King Balor. Encouraged by his son Prince Nuada, Balor orders the building of this Golden Army. The humans are devastated by the army. Balor is ridden with guilt and forms a truce with the humans: Man will keep his cities and the magical creatures will keep their forests. Nuada does not agree with the truce and leaves in exile. The magical crown controlling the army is broken into three pieces, one going to the humans and the other two kept by the elves.
In the present, Nuada declares war on humanity. He collects the first piece of the crown from an auction, killing everyone at the site by unleashing tooth fairies, and kills his father for the second piece. His twin sister, Princess Nuala, escapes with the final piece. Meanwhile, Hellboy is having issues with his girlfriend Liz, and trouble accepting that their organization, the B.P.R.D. must remain undercover. Investigating the auction slaughter, Hellboy allows himself to be revealed to the world. In the commotion, Abe Sapien discovers Liz is pregnant; she swears him to secrecy as she ponders keeping the child. Furious at Hellboy’s actions, the Bureau’s superiors send a new B.P.R.D. agent, the ectoplasmic medium Johann Krauss, to take command. With Krauss in charge, the team tracks the tooth fairies to the troll market, an enormous city hidden under the Brooklyn Bridge. Abe stumbles onto Nuala, who has obtained a map leading to the Golden Army, and falls in love with her. She is brought under B.P.R.D. protection following an attack by Nuada’s sidekick, the troll Wink, and an elemental forest god, both of which Hellboy kills. During the fight, Hellboy is questioned by Nuada whether it is right to fight for the humans when he too is considered a monster.
Nuada tracks his sister to B.P.R.D. headquarters using their magical bond, which causes them to share wounds and read each other’s thoughts. Sensing her brother’s arrival, Nuala attempts to destroy the map and hides the final crown piece in one of Abe’s books. Nuada critically wounds Hellboy with his spear, promising Nuala in exchange for the final crown piece. Unable to remove the spear shard, Liz, Abe and Krauss take Hellboy to the Golden Army’s location in the Giants Causeway, County Antrim, Northern Ireland. They encounter a Bethmoora goblin who brings them before the Angel of Death, who has awaited their arrival. Though warned Hellboy will doom humanity if he lives, and that she will suffer the most from it, Liz pleads for Hellboy’s life. The Angel removes the shard from Hellboy’s chest and tells Liz to give him a reason to live. She reveals to Hellboy that he will be a father, and he recovers.
The goblin leads the team to the resting place of the Golden Army, where Nuada awaits them. In exchange for Nuala, Abe gives him the last piece of the crown. Nuada awakens the Golden Army, ordering the team’s death; the army proves indestructible as the soldiers magically repair themselves. Hellboy challenges Nuada for the crown, and Nuada is forced to accept, since Hellboy’s father was a Prince of Sheol, the Fallen One, a member of Hell’s royal family. Hellboy defeats Nuada and spares his life, but Nuada tries stabbing him. Nuala commits suicide to stop her brother; the dying Nuada tells Hellboy he will have to choose whether humanity or magical beings must die. Abe psychically shares his feelings with Nuala before she and her brother die. Hellboy briefly considers using the crown, but Liz melts it, deactivating the Golden Army. As the team leaves the underground compound, Tom Manning reprimands them. Hellboy, Liz, Abe, and Johann resign from the B.P.R.D. Hellboy contemplates his future life with Liz and their baby. Liz corrects “babies” and holds up two fingers, signifying that she is pregnant with twins.