Hellboy takes control of Excalibur and overcomes the corrupting power to use it to behead Nimue and send her to Hell. Hellboy then takes up his new role as head of the BPRD.
The film opens with King Arthur and Merlin fighting an evil sorceress named Nimue the Blood Queen (Milla Jovovich). She seeks to unleash a plague on humanity, wiping them out so that monsters and demons can live freely and openly on Earth. Arthur defeats her and uses the mystical sword Excalibur to cut her in pieces (Nimue is immortal, but powerless when hacked apart by a mystical object). Each body parts are hidden across Britain in hopes that she can never be put back together.
Jumping to the present, a giant-fisted demon named Hellboy (David Harbour) who works for the Bureau for Paranormal Research and Defense (the BPRD) is sent to Mexico looking for a missing agent. He finds the agent has been turned into a vampire and accidentally stakes the agent during the ensuing fight. Before dying, the agent tells him the apocalypse is coming. Hellboy reports this to his adoptive father, Professor Broom (Ian McShane), who is the head of the BPRD. It is also clear that Hellboy is at odds with his father's stance on exterminating all monsters.
A British paranormal defense group requests Hellboy help them track and kill three giants roaming the British countryside. When he arrives in Britain, they tell Hellboy about his origin. During World War II, a group of Nazi hunters (including Professor Broom) attacked an occult ceremony being performed by the Nazis. They find that the Nazis had summoned a baby Hellboy from Hell to aid their war effort. Rather than kill Hellboy, Professor Broom adopted him.
While on the hunt for the giants, the group attacks and tries to kill Hellboy. Their seer has predicted that he is fated to bring about the impending apocalypse. Hellboy is ultimately saved by a woman named Alice (Sasha Lane) who has psychic powers and can conjure the dead. Alice was rescued by Hellboy as a baby from evil fairies who had abducted her and replaced her with a changeling named Gruagach (a warthog-like beast that can change shape and swallow other people's tongues to obtain their voice, played by Stephen Graham). Unbeknownst to all, Gruagach has recovered all the pieces of Nimue in hopes she can grant him the happy life denied him when Hellboy rescued Alice.
Eventually, BPRD learns that Nimue has been recovered and travel to Britain to work with Hellboy to find and destroy her. They also join forces with yet another paranormal group, whose liaison is a man named Ben Daimio (Daniel Dae Kim). Daimio distrusts Hellboy and hates all monsters after having survived a brutal attack from one many years ago. Daimio secretly commissions the creation of a bullet to kill Hellboy should he fulfill the prophecy of starting the apocalypse. Meanwhile, an evil child-eating witch named Baba Yaga (played by Troy James, voiced by Emma Tate) offers to give Hellboy Nimue's location in exchange for one of Hellboy's eyes to replace the one he took from her during a prior battle. He agrees, but after she tells Hellboy where Nimue is, he says she can only have his eye when he's dead. They fight, but Hellboy escapes with the information and his eyes intact.
Hellboy, Alice, and Daimio approach the place where Nimue was defeated by Arthur and where she can restore her full power. Nimue conjures zombies who try to stop the heroes, but Hellboy makes his way to her. She offers to let him rule next to her and notes that all she wants is to allow creatures like him to live in the open. Hellboy considers this offer but ultimately rejects it. Saying its only a matter of time until Hellboy accepts his destiny as her king and unleashes the apocalypse, Nimue poisons Alice before escaping.
Hellboy and Daimio track down Merlin, who is near death. Merlin heals Alice on condition that Hellboy agrees to once again destroy Nimue. Merlin explains that Hellboy is actually only half-demon and that his mother was human and a descendant of King Arthur. Merlin conjures Excalibur, telling Hellboy it is his birthright to take the sword to destroy Nimue. When Hellboy grasps the hilt, he gets a vision that the power will overwhelm and corrupt him, causing him to start the apocalypse. Hellboy thusly refuses to take the sword and Merlin dies, having exhausted his magical powers.
The trio then return to London where Nimue has unleashed her plague on the humans there and destroyed the BPRD. Hellboy tries to attack, but is confronted by a fully powered Gruagach. Daimio reveals that as a result of surviving the monster attack, he can transform into a were-leopard and he also joins the fight. Gruagach prevails, though he is eventually killed by Nimue as a show of good faith to Hellboy. Nimue reiterates her offer to rule by Hellboy's side and presents him with Excalibur, knowing its power will corrupt him. Hellboy again refuses to take the sword, so Nimue kills Professor Broom (whom she had taken hostage). In a rage, Hellboy finally takes up Excalibur and is transformed into a fully demonic form.
The fully-demonic Hellboy opens the gates to Hell and demons begin wreaking havok and killing people in a bloody assortment of ways. As Hellboy takes Nimue's hand, Daimio loads the bullet he had commissioned to kill Hellboy. Before anyone can act, Alice conjures up Professor Broom's spirit. Broom apologizes for being a bad father but tells Hellboy that he loves and believes in him and that Hellboy can choose to be better. This restores Hellboy's senses and he decapitates Nimue with Excalibur before banishing the demons back to Hell. As the gates to Hell close, Hellboy throws Nimue's head into Hell - seemingly ending her threat forever. Daimio, now convinced of Hellboy's good nature, destroys the bullet.
The film ends with Hellboy in charge of the BPRD. He, Daimio (who has embraced his own monstrous nature), and Alice (now a fully-trained soldier) take down a lair run by evil scientists. Within the lair, they find Abe Sapien (a fish-like creature who is one of Hellboy's closest allies in the comics).
A mid-credit scene shows Hellboy meeting the ghost of a World War 2 hero (cameo by Thomas Haden Church) who worked with Professor Broom during the war.
In a post-credit scene, Baba Yaga hires an unseen character to kill Hellboy and bring her his eye. In return, she will grant the character what he wishes for the most - the ability to die.