Based on the graphic novels by Mike Mignola, Hellboy, caught between the worlds of the supernatural and human, battles an ancient sorceress bent on revenge.
The evil Queen of Blood, Vivian Nimue, was originally killed by King Arthur and Merlin, with pieces of her body scattered across Europe to prevent her from returning. A warthog creature named Gruagach is instructed by the witch Baba Yaga to find Nimue and bring her back, as they both have a grudge against Hellboy.
Hellboy was brought to Earth by Grigori Rasputin and the nazis during World War II, but he was raised by Professor Trevor “Broom” Bruttenholm as a son. In the present, Hellboy must team up with an old friend, Alice Monaghan, and Major Ben Daimio, who is cursed to turn into a were-jaguar, in order to defeat Nimue. Merlin tells Hellboy that he is a direct descendant of Arthur and must wield Excalibur to kill Nimue, but Hellboy sees that if he does so, he would bring about the apocalypse.
After Nimue’s powers rise, she sets a plague on London that kills many people. The team goes to stop her at St. Paul’s Cathedral. After fighting and doing away with Gruagach, Nimue shows Hellboy that Arthur’s tomb is below them, along with Excalibur. When he refuses to join her, she kills Broom. He takes Excalibur and takes on his true form, but after Alice helps Broom’s spirit talk to Hellboy, he chops Nimue’s head off and sends it to Hell so she can never come back.
The team later goes to Siberia where they find Abe Sapien.
The film opens during the Dark Ages. King Arthur (Mark Stanley) and Merlin (Brian Gleeson) met with the Queen of Blood, Vivian Nimue (Milla Jovovich), to form what seemed to be a truce, only for Arthur and Merlin to try and put an end to Nimue, who was betrayed by her most trusted witch Ganeida (Penelope Mitchell). Using Excalibur, Arthur dismembered and beheaded Nimue before placing her parts in separate caskets to be scattered across the world so that the evil queen may never reign on Earth.
In the present day, Hellboy (David Harbour) arrives in Tijuana to find Esteban Ruiz (Mario de la Rosa), his partner from the Bureau for Paranormal Research and Defense that went missing after going on a mission. Hellboy finds Ruiz in an arena where he is fighting as a wrestler named Camazotz. Ruiz had been there to hunt vampires, but he got turned into one himself. He challenges Hellboy to fight him in the ring before he mutates into a monstrous form, sending all the patrons running. Hellboy fights Ruiz before impaling him on a post. He runs to his friend as he turns back to normal, but as Ruiz dies, he warns Hellboy that the end is coming, and he calls Hellboy by his true name, Anung Un Rama. Depressed over killing his friend, Hellboy goes to the bar to drink until two BPRD agents come pick him up.
A warthog-like creature named Gruagach (Stephen Graham) visits the witch Baba Yaga (Emma Tate). They both have multiple bones to pick with Hellboy, so Baba Yaga orders Gruagach to free Nimue to gain the revenge that they both seek.
Hellboy returns home to his adoptive father, Professor Trevor “Broom” Bruttenholm (Ian McShane). He asks Broom what Ruiz meant by what he was saying, to which Broom responds that he doesn’t know. Broom then tells Hellboy that he is wanted by the Osiris Club in England for help in hunting down giants.
Hellboy travels to England to the headquarters of the Osiris Club. There, he meets their leader, Lady Elizabeth Hatton (Sophie Okonedo). She tells Hellboy about where he came from. During World War II, Grigori Rasputin (Markos Rounthwaite) and his minions Kroenen (Ilko Iliev) and Ilsa (Vanessa Eicholz) tried to bring something from another dimension to use as a weapon. The BPRD got there with the help of top agent Lobster Johnson (Thomas Haden Church), who came in and killed nazis before having Rasputin executed. Broom was instructed to kill whatever came out of the nazis’ portal, but when he saw the baby Hellboy, he chose to adopt him instead.
Hellboy travels with the Osiris hunters to go after the giants, but they double-cross him and start trying to kill him by repeatedly impaling him. Hellboy manages to get some kills in, but he is weakened when they corner him in the river and electrocute him. Before the leader can strike the fatal blow, a giant comes in and starts killing the hunters with two other giants. Hellboy wakes up to find the giants feasting on their corpses before he springs into action. Although the giants toss him around a bit, Hellboy manages to slice their limbs off, pluck their eyes out, and straight up slaughter the giants. Hellboy then passes out again.
Gruagach makes his way to a church where he starts to kill a group of silent monks. He forces the remaining one to guide him beneath the church where Nimue’s head is kept. After the monk refuses to speak the incantation to free her, Gruagach rips his tongue out and swallows it so that he can say it. Nimue’s head awakens, and she instructs Gruagach on where to find the rest of her body.
Hellboy wakes up in an apartment after being rescued by an old friend named Alice Monaghan (Sasha Lane), who has the power to hear the voices of the dead. Broom has several agents break into the apartment to confirm that Hellboy is okay. Outside, Hellboy complains to Broom about the Osiris Club trying to kill him. Broom is less concerned with that and more with the fact that Nimue is awake and that the last pieces of her body lie in the headquarters of the Osiris Club. Broom introduces Hellboy to Major Ben Daimio (Daniel Dae Kim) of M11, who is working with the BPRD to stop Nimue. Broom orders them to bring Alice along on the mission.
The team arrives at the Osiris headquarters where everyone has been brutally killed. They find Lady Hatton’s body, and Alice touches her head so that her spirit can communicate with them by appearing out of Alice’s mouth. Hatton warns Hellboy that now that Nimue is free and searching for a king, his true destiny will be fulfilled. They then run into Gruagach as he is taking the last piece of Nimue with him. Hellboy goes after him, but Gruagach escapes after Nimue distracts Hellboy with a vision and plays with his mind over his feelings about how non-human creatures are treated.
On the way to M11 headquarters, Hellboy tells Alice and Daimio how he knows Gruagach. When Alice was a baby, her parents needed Hellboy’s help because she was taken by fairies and replaced by a changeling. Hellboy coaxed the creature out of his disguise using iron, and Gruagach revealed his true form. Hellboy branded Gruagach, and he has wanted revenge ever since. The fairies later returned Alice safe and sound. Upon arriving at M11, Hellboy angrily asks Broom why he didn’t kill him when he came out, to which Broom responds that he saw potential in him. Hellboy storms off. Meanwhile, Daimio goes somewhere to acquire a special bullet that can kill Hellboy if necessary.
Hellboy finds himself transported to another realm where he finds Baba Yaga’s house. The witch brings him into her home where she is feasting on the hands of children. She offers to help Hellboy find Nimue in exchange for his eye, as he had previously gouged out one of her eyes. Hellboy reluctantly agrees, and she seals their deal with a (very gross) kiss. However, Hellboy tricks her since she didn’t say WHEN he had to give her the eye. Baba Yaga curses him as he falls out of her house and ends up falling back into the same office with Broom and Alice.
As the team heads to Nimue’s location, Daimio tells Alice about the scars on his face. He and his team were hunting a demonic jaguar creature in Belize, and his whole team was killed, but Daimio survived after the creature clawed his face. They find Nimue after she confronts Ganeida and her sisters for betraying her. She kills the sisters but leaves Ganeida alive, and she presents Nimue with a thorny crown. Nimue then unleashes an undead army to fight the heroes while Hellboy goes after her. She tries to tempt him to join her so that they can rule together, but Hellboy refuses. Nimue takes a thorn from the crown and throws it at Alice’s neck, which poisons her as Nimue and Gruagach escape through a portal. Ganeida tells the heroes to find Merlin to undo the poison in Alice.
Hellboy and Daimio bring Alice to Merlin’s tomb where he awakens after centuries. He removes the thorn and saves Alice, but then knocks her and Daimio unconscious so that he can talk to Hellboy in private. He reveals to Hellboy that he is a direct descendant of Arthur and that his mother was human. Only he can wield Excalibur and defeat Nimue. The sword makes itself present, but when Hellboy goes to grab it, he sees a vision of himself with his horns fully grown as he rides a dragon and comes down to Earth to massacre humanity. He refuses to take Excalibur for fear that he will bring about the apocalypse, and Merlin crumples to dust as he dies in disappointment.
With Nimue’s power having been restored, she unleashes a plague upon London that spreads rapidly and kills many people. The team head to St. Paul’s Cathedral to face her. They are found by a gigantic Gruagach. Hellboy fights him, while Daimio gives into his were-jaguar form and mutates to help fight Gruagach. Nimue then emerges and, now that she has no more use for him, she shrinks Gruagach until he pops into a bloody mess. She continues to try and tempt Hellboy, even bringing him beneath the floor of the cathedral to find Arthur’s tomb, with Excalibur resting in its stone. Hellboy still refuses to join her, so she brings Broom out and kills him by slicing his neck open. In his grief and rage, Hellboy grabs Excalibur and takes on his true form, complete with horns and a flaming crown. Outside, colossal demonic monsters are ripping people to shreds and laying waste to London. Alice runs to Broom’s body to channel his spirit so he can talk to Hellboy. He tells Hellboy that he always loved him and to be as great as Broom always believed he would be. With that, Hellboy decapitates Nimue, which sends all of her demons back to Hell. He takes her head and throws it down to Hell so that she can never come back. Daimio then destroys the bullet, telling Alice it was a mistake.
Six months later, Hellboy, Alice, and Daimio are in Siberia to face off against the Atlantis Society. After killing all the members, they come across the tank of Abe Sapien.
Mid-Credits: Hellboy is drunk at Broom’s grave when he meets Lobster Johnson. Hellboy geeks out as he is a huge fan of his, and Lobster tells him not to squander his potential.
After Credits: Baba Yaga is making a deal with an unseen being (Koschei) to find Hellboy so that she can allow this creature to finally die.