Movie opens up with a celebration in the Great Hall of Heorot, built by Hrothgar (Anthony Hopkins), king of the Danes. The Danes are celebrating the completion of the Hall, and theyre really boozing it up and partying quite loudly. Booziest of all is Hrothgar himself quite inebriated, half-naked, slurring his words and barely able to keep his balance. He's somewhat repulsive and a bit of an embarrassment to his young wife, Queen Wealthow (Robin Wright Penn).
The revelers begin to chant, pounding the ground in time with the chanting. The camera pulls away from the Hall, to the snowy hills surrounding the kingdom, where the chanting and thumping have died out and all is silent. Finally, we pull into a cave miles away, where the chanting and thumping are suddenly heard at an almost unbearably loud level. We hear something in the cave screaming in pain, as if the noise is too much for it to bear.
Back to Heorot, where after-hours are still rocking full-blast. The large wooden entrance doors are blasted off their hinges, the halls torches blow out, and the hearth in the middle of the hall erupts in eerie blue flames. People start wigging, as we hear same the something from the cave screaming right outside Heorot's doorway. As the Danes gird their loins and take up arms, the creature enters.
It's huge, about 15 feet tall and vaguely humanoid in appearance, but clearly not all human. Its misshapen, deformed, and appears to have, instead of ears, some highly sensitive pads that serve as hearing organs. The screaming of the Danes seems to hurt the creatures ears and, enraged, he begins to tear the revelers apart, literally.
Eventually, the creature makes his way to Hrothgar, who, to his credit, didn't run away in a drunken panic, but held his ground. The King demands that the monster fight him, but the creature is unafraid. It simply takes a long almost quizzical look at Hrothgar and abruptly withdraws.
Back at his cave, the monster is chastised by his mother for killing men. We don't see his mother, though we catch glimpses of her reflection in the caves pool. We cant tell exactly what she is, but we see enough to know that she isn't even remotely human.
The dead are removed from Heorot and burned, and the Hall is sealed as a place of evil. Hrothgar confers with his majordomo Unferth (John Malkovich). We come to find that the creature is named Grendel (Crispin Glover), and that it has apparently plagued these Danes in the past. The King tells Unferth to put out the word that the man who slays Grendel will earn half of the kingdoms riches in return. The King pointedly states that they need a hero.
We cut to a ship at sea, the mainsail bearing the likeness of a large wolf. The ship is navigating a brutal storm, and at the prow we see our hero, Beowulf (Ray Winstone), and his lieutenant and good friend, Wiglaf (Brendan Gleeson). They are unfazed by the extremely rough seas, and discuss with much bravado how they are on their way to take up Hrothgar's offer and slay Grendel, and how the glory of their deeds will live eternally.
They land on Danish shores and are taken to Hrothgar, who greets Beowulf warmly, apparently having known his father. Beowulf asks that Heorot be reopened, and Hrothgar acquiesces, providing Beowulf and his crew with food, drink and lodging as they rest in preparation for their battle.
In the revelry, Beowulf catches the eye of Queen Wealthow (and vice versa), although the two exchange nothing more than polite pleasantries. Unferth seems angered by Beowulf's presence, and calls him out. Seems that Unferth has heard a story about Beowulf being challenged to a swimming race and losing. How, Unferth asks, can Beowulf be expected to slay Grendel if he can't even outswim a human opponent in a simple race.
After trading some insults with Unferth, Beowulf admits the tale is true, but explains why he lost the race. As Beowulf narrates, in flashback we see him swimming in the ocean against his opponent, only to be set upon by a giant sea monster. As his competitor swims to safety, Beowulf fights and kills the monster, and another, and another each in increasingly fantastic fashion. It is implied that this tale is somewhat exaggerated, though not altogether untrue. The flashback shows us something that Beowulf pointedly does not tell the Danes that after fighting the monsters underwater, Beowulf came across a siren/mermaid/water nymph. Shes breathtakingly beautiful, in an otherworldly sort of way, and Beowulf cant take his eyes off her.
We snap back to the present (no mention of what finally happened with the mermaid), and Beowulf and Unferth are still hostile toward each other. Hrothgar breaks it up, retiring to his chambers while the Queen sings a song for the Geats (Beowulf and crew, a.k.a. folks from Sweden), though the song is clearly meant for Beowulf alone. When the Queen finally retires, and Hrothgar demands that she get in bed and produce an heir, Wealthow states that she could never lie with the King, knowing that you laid down with her. The King is duly shamed, though were not told exactly why.
The Danes all pack it in, leaving Beowulf and crew in the Hall to prepare for Grendel. Beowulf notes that he will fight Grendel hand-to-hand, since no weapon seems to harm the monster anyway. Further with the machismo, Beowulf strips naked, planning to fight Grendel unclothed. The Geats start chanting Beowulf's name, and the noise reaches Grendel's cave and he screams in pain.
Back to the Hall, the torches go out, blue flames burst out of the hearth, and something pounds at the reinforced doors. Grendel comes crashing through as before, killing Geats left and right until Beowulf comes into the battle, in all his nakedness. Beowulf is very strong and agile, and knows how to fight Grendel (suggesting that the sea monster story wasn't entirely a bunch of hooey), and they spar back and forth until Beowulf notices that Grendel reacts painfully to loud noises. He promptly jumps onto Grendel's back and hammers at the beast's sensitive earpads, which causes the monster extreme pain. As Grendel tries to retreat, his arm is caught in some chains, and Beowulf grabs hold, preventing Grendel from escaping just as the monster goes out the big main door. Grendel's arm is pinned between the door and the doorjamb, and Beowulf, after victoriously announcing his name to the monster, rips off Grendel's arm. Grendel flees to his cave.
Beowulf holds up the arm in victory, claiming he's killed Grendel, and most of the Geats cheer his name in celebration. Wiglaf does not, being much more concerned and upset with the lives lost in the battle.
Back in the cave, Grendel is dying. We hear his mother asking who did this to him, and Grendel says Beowulf before he dies. Grendel's mother sings a lullaby as she carries her boys body to an altar of sorts. As she places the body down, her voice starts to crack and she sobs before starting to scream with rage.
Back in Heorot, Hrothgar is holding another celebration in honor of Beowulf. Unferth apologizes for doubting him, and Wealthow is even more smitten with their hero. The King gives Beowulf a golden horn, the standard of the Danish kingdom, as part of his reward. The horn is in the shape of a dragon, with a red jewel at the neck, and Hrothgar makes an off-hand remark about how hitting the neck is the only way to kill a dragon. Wiglaf is still upset, and goes down to the shore to prepare their ship for departure the next morning.
Later, the Geats are all passed out in the Hall after their celebration, and we get a first-persons view of Grendel's mother as she flies into the Hall and tries to figure out which man is Beowulf. She correctly singles out the man who is the biggest and strongest, and appears to him in a dream as Wealthow, begging Beowulf to give her a son. Beowulf realizes he is dreaming and wakes up just as Wealthow's face starts to turn into something demonic. He looks around the Hall to see that all of his men (except Wiglaf, who was down at the shore) have been slaughtered, their bodies strung from the rafters.
Later on, when people start to suspect that Grendel isn't really dead, Hrothgar explains that the Geats were killed by Grendel's mother, about whom the King seems to know a great deal. When pressed about who is Grendels father, the King is evasive. It is implicitly clear that Hrothgar himself was Grendel's father (explaining why Grendel didnt kill him earlier). Unferth gives Beowulf his family's sword to assist him in killing Grendel's mother.
Beowulf and Wiglaf set out for the cave to kill Grendel's mother and avenge their men. Beowulf insists on going in alone, golden horn and Unferth's sword in tow. The cave is dark, but the horn magically glows to light the way. Beowulf finds an alcove filled with gold, as well as a lot of human bodies, and the altar holding Grendel's body. Suddenly, Grendel's mother's voice comes out of nowhere asking who Beowulf is, and we see her slowly rise out of the water, apparently having shape-shifted into human form. Beowulf is rightly transfixed, in a manner very similar to when he saw the mermaid in his sea monster story. Beowulf's seems to be easily susceptible to the charms of the mystical lady-creatures.
She admires how handsome and strong he is. Beowulf tries to run her through with Unferth's sword, but it just passes through her like shes a ghost. She comes up to him and tempts him with the promise of a kingdom and eternal glory, only if he lay with her and give her another son to replace the one he took. She grabs hold of Unferth's blade and it melts like butter. It is apparent that she could slaughter Beowulf at any time. Beowulf doesnt fight her as she sidles closer to him and grabs Hrothgar's dragon horn. There's clearly some kind of connection there, as she says that her promise is valid as long as she has that horn. And Beowulf seems on the verge of yielding to her offer.
Jump cut to Beowulf marching back into Heorot, tossing Grendel's head at the Kings feet. Beowulf claims that he not only made sure Grendel is dead, but killed his mother, too. He claims he lost the horn while fighting her, and left Unferth's sword in her body to make sure that she stayed dead. Hrothgar gives Beowulf a quizzical look, and suddenly exclaims that since he, Hrothgar, has no heirs, everything he has, including the kingship and Wealthow, will go to Beowulf when he dies. Hrothgar throws another party, then asks Beowulf for a private word.
The King asks Beowulf to recount exactly what happened with Grendel's mother. Beowulf repeats the same blustery tale as before, but with a bit of wariness in his voice. The insinuation is that Beowulf isn't being truthful about what happened. When Beowulf refers to Grendel's mother as a hag, Hrothgar gives him a knowing gotcha! look and says Shes no hag, Beowulf. We both know that. But shes not my curse anymore; she's yours. Beowulf, realizing that the King knows exactly what happened, is visibly shaken, but says nothing. They rejoin the party, but Hrothgar excuses himself later and promptly jumps off the castle wall to his death. As Beowulf and Wealthow look down in horror, Unferth announces Beowulf as Denmark's new King.
We cut to Beowulf's face, older and grayer, wearing the Danish crown, surveying his soldiers on a field of battle. His soldiers are slaughtering the opposing army, and Beowulf seems almost saddened by the news. It seems that Grendel's mother made good on her promise, as Beowulf has enjoyed unsurpassed success and glory over the past 50 years, and Beowulf feels as his achievements are all empty and dishonorable, gained from an unholy union with a monster, rather than on Beowulf's own skill and merit. Beowulf even dares one of the enemy soldiers to try and kill him, knowing yet disappointed that it won't happen (it doesn't).
Wealthow is Beowulf's Queen, but he has taken up with a younger girl, Ursula (Alison Lohman), who truly seems to care for Beowulf. Their relationship is kept secret with the Queen, thought she knows about it anyway and doesn't say anything. In fact, Beowulf and Wealthow seem to be in a cold and loveless marriage, and she doesnt seem the least bit relieved or happy to learn that he came back from battle unharmed. When Ursula asks what happened in their marriage, Wealthow says "Too many secrets." One would think that she is just as disgusted with Beowulf for having sex with Grendel's mother as she was with Hrothgar.
One night, Unferth comes to the King with a slave in tow. The slave holds out his hands to reveal Hrothgar's golden horn, which was found on the shore not too far from Grendel's cave. Beowulf is freaked out, as he realizes that this means that the deal with Grendel's mother is no longer in effect, and that trouble is sure to follow. Sure enough, one of the kingdoms outlying villages is attacked by a dragon one night, and almost all are killed. Unferth is spared so that he can pass on a message to the King that his son is waiting for him.
Beowulf knows that this dragon must be the spawn of his liaison with Grendel's mother, and prepares to set out to fight him. He shares a tender moment with Wealthow where they admit that despite everything that's happened, they still love each other. Then he suits up with Wiglaf and they head out to the cave.
Again, Beowulf insists on going in alone. He hears a male voice trying to decide who it should kill first, the Queen or Ursula. Grendel's mother appears, who tells Beowulf it is too late to make amends, take things back or renegotiate the deal. As she says this, a huge dragon appears in the caves darkened alcove and spews a blast of fire toward Beowulf. He dodges and escapes the cave just as the dragon flies out and heads toward Heorot. Beowulf grabs onto the dragon and tries to fight it mid-flight. Wiglaf follows on his horse. At some point, Beowulf gets a chain of some kind lashed around the dragon's neck. When Beowulf is on the back of the dragon, it nose dives into the ocean and plunges deep to the seabed. Beowulf is violently thrown off its back but luckily chances upon an old anchor with a heavy chain, grabs hold of it and jams it in the mighty jaws of the dragon just as it was about to surface above out of the ocean.
Beowulf isn't very successful in slowing up the dragon, and it starts to lay fiery siege to the castle's perimeter. As it just so happens, both Wealthow and Ursula are talking on the castles rampart as the dragon approaches, and it makes a beeline for them. The dragon burns both of the ramparts exits, leaving the women trapped and with no place to hide.
Beowulf find himself dangling on the chain, swinging right in front of the dragons neck, where Beowulf spots a large glowing red area, just like the red jewel in Hrothgar's horn. Beowulf stabs the red area, to find that it opens up into the dragons throat and also happens to give Beowulf a clear shot at the dragons heart. However, Beowulf cant reach the heart. Try as he might, he's always a few inches too far away. Knowing its only a matter of time before the dragon burns the women, Beowulf takes his sword and chops off most or his arm holing the chain. He loses his sword, but the partial separation of his arm from his torso gives him the extra few inches needed to grab the heart and rip it out.
As Beowulf squeezes the heart until it bursts, the dragon starts to fall from the sky, down the cliffs of the castle, taking Beowulf with him it its death throes. Wiglaf arrives to save the women. At the shoreline at the bottom of the cliff, both Beowulf and the dragon are sprawled on the beach. The tide washes over them both, and Beowulf, barely conscious, sees the dead dragon melt away to reveal a human form, looking remarkably like a young Beowulf covered completely in Grendel's mother's golden film. The body is carried away by the tide just as Wiglaf arrives in search of the king.
Beowulf knows hes about to die, and reveals that he made arrangements for Wiglaf to become the new king. He beseeches Wiglaf to let folks know that Beowulf never killed Grendel's mother (it seems Wiglaf might have always known the truth, but loyal lieutenant that he is, followed Beowulf's story anyway). Beowulf also asks that Wiglaf make up no other stories or inflate the truth in recounting what led up to the king's death. Finally at peace, Beowulf dies.
He is given a Viking-like funeral, placed on a boat with sword in hand, and surrounded by offerings to the gods. The boat is set on fire and set out to sea. Wealthow and Ursula, grieving together, head back to the castle, as does everyone else, but King Wiglaf stays behind to watch, himself grieving at the loss of his friend.
As he watches the ship engulfed by flames, he sees Grendel's mother appear still human and nude, but with demon wings and a serpent tail, descend onto the boat and give Beowulf a parting kiss. She descends into the water, and the boat then crumbles and sinks completely out of sight. Wiglaf seems to be unsurprised by her appearance.
What he is surprised to see is Grendel's mother rising out of the water, much closer to the shore, looking straight at Wiglaf. And he looks down to see Hrothgar's horn wash upon the shore. He picks it up and takes a few steps into the surf, eyes fixed on Grendel's mother. She is looking at Wiglaf with the same sultry beckoning look that she gave Beowulf 50 years ago; Wiglaf seems just as transfixed as Beowulf was.
As the two gaze at each other, we are left to wonder whether Wiglaf resisted her, or if he gave in just as Hrothgar and Beowulf did, and thus started the cycle of the curse all over again.