An opening voice-over states that according to a legend, Egypt was the birthplace of civilization. The gods co-existed among the mortals and created the flourishing land for them to share. The son of Ra, Osiris, ruled over the land, while his brother Set was relegated to the desert, to his anger. The time has come for Horus, the son of Osiris, to take his place as king.
A mortal young man named Bek (Brenton Thwaites) steals a dress from a vendor in the market to give to his beloved Zaya (Courtney Eaton). They are preparing to go to the coronation event later that day.
Horus (Nikolaj Coster-Waldau) is passed out from a wild event of drinking with the gods the previous night. His beloved woman is Hathor (Elodie Yung), the goddess of love.
The time comes for the coronation to take place. Bek and Zaya, along with nearly the whole city, is in attendance. Osiris (Bryan Brown) and his wife Isis (Rachael Blake) bring their son forward and are prepared to pass leadership to him, when Set (Gerard Butler) arrives at the last minute with a gift for Horus, a battle horn. Horus blows into it, summoning Set's army to the front. Turns out Set is staging a coup against his brother and nephew. He demands Osiris to battle him, but he refuses. Set stabs Osiris in the abdomen, leaving him to bleed gold and die. Enraged, Horus transforms into his winged god form, while Set morphs into his dog-like form. They battle in front of everyone, but Set gains the upper hand and is ready to kill Horus until Hathor kneels before him so that Horus may be spared. Set orders all the gods and mortals to kneel before him, and he plucks out both of Horus's all-seeing eyes.
A year passes, and all of Egypt is under Set's rule. Those who do not follow him are either left dead or thrown into slavery, like Zaya. Bek frequently visits her in secrecy while her cruel master Urshu (Rufus Sewell) tends to his business with Set, which is building monuments in his honor. Zaya says that only Horus can save them, but he needs his eyes, which are kept in Set's vaults.
Bek sneaks into one of the vaults and overcomes three bridges that are booby-trapped. He reaches the end, but he finds only one of Horus's eyes. Still, it is powerful and bright enough to ward off scorpions from down below.
Bek returns to Urshu's home to rescue Zaya. Urshu and his guards are already waiting for him. Bek pulls out the eye to release a blinding white light, allowing him and Zaya to escape. Unfortunately, during the escape, Zaya is struck by an arrow shot by Urshu. She tells Bek she'll always love him and that death won't keep them apart. She dies before Bek knows it.
Bek arrives at Horus's home where the disgraced god lives in squalor. He asks Horus for help, but he refuses until Bek brings out the eye. The two of them briefly duel until Bek says he can get him his other eye if he helps bring Zaya back to life. Horus promises, despite the truth being that it is impossible. For now, Horus summons Anubis (Goran D. Kleut) to guide her toward the afterlife, but Bek must rescue her before she reaches the final gate.
Set learns that his vault was broken into. He travels to Horus's now empty home and finds Zaya's body lying under the floor, knowing what is going on. Set later sends his army toward the home of another god, Nephthys (Emma Booth), who was Horus's wife. He cruelly strikes her down and cuts off her wings.
Horus brings Bek to the top of a pyramid to pray to his grandfather Ra (Geoffrey Rush) for help. Ra answers his prayer and allows him to morph into his god form so that he may fly up with Bek to Ra's home near the sun. Ra is constantly fighting Apep, the serpent god of chaos that appears as a gigantic black cloud. Horus seeks his grandfather's help to defeat Set. Horus is allowed to take special water from the Nile to hydrate the deserts and take away Set's power.
Hathor, who has been kept as Set's slave, chooses to rebel against him. She grabs her bracelet, which wards off evil spirits, and she takes it off, which plunges her into the world of the evil spirits until she puts it back on and is transported somewhere far from Set.
Horus and Bek are in the desert and are pursued by Set's hunters, Astarte (Yaya Deng) and Atat (Abbey Lee), both riding enormous fire-breathing serpents. The villains chase after the heroes. Horus traps Atat onto her serpent as it rides over the edge of a cliff to their deaths. Hathor arrives and commands Astarte's serpent to set itself on fire, killing itself and Astarte.
The three continue their journey. In order to get into the vault to retrieve the other eye, they must pass the riddle of the Sphinx. They go to the temple of Thoth (Chadwick Boseman), the god of wisdom. Before entering, Hathor commands Bek to get her some water, but because his heart belongs to another, her powers don't work on him. He tells her about Zaya. Hathor is able to contact Zaya from beyond worlds to let her know that Bek is trying to rescue her.
Although highly knowledgeable, Thoth is vain and has multiple copies of himself doing work for him. Bek plays on his ego and gets him to help them. He joins the three as they encounter the Sphinx. The Sphinx recites the riddle, and Thoth answers, but his first two guesses are incorrect. He decides to think as a mortal instead of a god, and he gets the answer right. The heroes find the eye, and Bek is preparing to pour the water to stop Set, until Set himself shows up. He steals Thoth's brain and tells Bek that he knows what Horus promised him, and that he cannot bring Zaya back. Set takes the water and pours it out.
Set travels to Ra's home and expresses his anger over his destiny. He criticizes Ra for not allowing him to have children. Ra says it was part of a test that he has yet to pass. Ra wanted Set to take over his own duties to fight Apep, but Set instead duels his father and takes Ra's spear, impaling him. Set sends Ra over the edge, thus allowing Apep to break free and begin tearing through Egypt.
Hathor gives Bek her bracelet to bring to Zaya so she may have something to offer before entering the afterlife. Hathor is then pulled away by the evil spirits. Anubis takes Bek to Zaya to give her the amulet, but Apep's arrival means the gate to the afterlife is sealed. Bek returns to the mortal world and reunites with Horus, despite feeling betrayed by him. Meanwhile, Set's armor is upgraded with Nephthys' wings, Thoth's brain, Horus's eye, and Ra's spear. He summons Apep toward him.
Horus morphs into his falcon form once again and begins to fight Set. They battle across the top of the pyramid, while Bek is cornered by Urshu. After a brief fight, Bek manages to push Urshu over the edge to his death. Bek manages to pry the eye off of Set, getting himself mortally wounded in the process. Bek tosses the eye to Horus, but the god chooses to rescue Bek as he falls over the side of the pyramid. Horus brings Bek to safety and then flies up to continue fighting Set until he manages to weaken his uncle. Horus takes Ra's spear and impales Set, destroying him for good. He flies back to recover Ra and return his spear, allowing him to hold Apep away once again.
A little village girl gives Horus his eye back, and the people of Egypt cheer for him freeing them. Horus then goes to Bek, moments before he dies. He brings his body back to his home to lay next to Zaya. Ra appears and thanks Horus, saying he owes him a debt. Horus says he wants what cannot be given. Ra knows what it means, and he uses his power to bring Bek and Zaya back to life. They awaken and kiss.
Horus is then properly made king to rule over Egypt, while Thoth and Nephthys are also brought back to life. Horus then takes Hathor's bracelet and decides to go rescue her. He leaves Bek, now Horus's advisor, to make sure Egypt is left in good hands.