Um das Jahr 500 wird das Land der kühnen Dänen von einem menschenverschlingenden Ungeheuer namens 'Grendel' heimgesucht. So wird die von König Hrothgar gerade eingeweihte Met-Halle zum Schauplatz mehrerer blutiger Massaker an dem dänischen Volk. Grund für diese schrecklichen Ereignisse ist der sinnlose Mord an Grendels Vater, den Hrothgar vor zwanzig Jahren begangen hat. Die Dänen werden des Ungeheuers nicht Herr. Hilfe erhalten sie von dem berühmten jugen Helden Beowulf (Gerard Butler), der mit vierzehn Gefährten zu ihnen segelt. Beowulf fühlt sich den Dänen verpflicht, denn König Hrothgar (Stellan Skarsgård) hatte seinem Vater vor vielen Jahren Gastrecht gewährt, da dieser wegen einer Fehde sein Land verlassen musste. Beowulf, der inzwischen die Kraft von 40 Männern besitzt, nimmt den Kampf mit dem Riesen Grendel (Ingvar Sigurdsson) auf.