For ages in the region of Middle Earth, humans and orcs have been at war. Durotan (Toby Kebbell) is the chieftain of his Frostwolf orc clan, and he wants to escape the life of war as he and his wife Draka (Anna Galvin) are expecting their first child.
The orc clans come together as The Horde. Their land, Draenor, is on the brink of doom, so the sinister orc warlock Gul'dan (Daniel Wu) plans to guide The Horde into the land of Azeroth. Gul'dan uses a dark form of magic called fel, which is created from death. He has captured dozens of Draenei prisoners in cages and brings them to The Gate. The half-human/half-orc Garona (Paula Patton) is chained up and walks past some prisoners who beg her to free them, although it is beyond her control. After draining the Draenei of their life force, Gul'dan opens the portal to Azeroth. The orcs storm through, but Draka conceals her pregnant belly. Once they arrive, Draka experiences pain. The other orcs discover he is with child and scold Durotan for allowing her to come through in her state. She starts to give birth. Gul'dan lends his hand, and Draka gives birth to a stillborn orc boy. Gul'dan takes the life force of a nearby deer to give the boy life. He presents Durotan's son to The Horde as a new warrior.
In Ironforge, Commander Anduin Lothar (Travis Fimmel) is meeting with King Magni Bronzebeard (Michael Adamthwaite), who presents Lothar with a boomstick. Lothar is then summoned to the kingdom of Stormwind after a garrison has been attacked.
Lothar goes to Stormwind and meets a mage named Khadgar (Ben Schnetzer), who was caught inspecting the bodies. They find one man's body, which spews green smoke from the mouth, meaning he was killed with fel magic. Lothar and Khadgar meet with King Llane Wrynn (Dominic Cooper). They are sent to meet with the Guardian Medivh (Ben Foster) in Karazhan.
Lothar and Khadgar find Medivh sculpting a giant Golem out of clay. As Lothar explains the situation to Medivh, Khadgar walks through Medivh's library and sees a dark shadowy figure lurking. The power of the figure draws Khadgar toward a certain book. As he goes to pick it up, Medivh shows up and pins Khadgar against the wall with his magic before dropping him.
Medivh joins Lothar and Khadgar as they go with a scouting team into the forest to investigate the fel magic. They are attacked by a group of orcs, who proceed to pound the humans, though Lothar is able to slay a good few. Medivh casts a spell that kills the green-skinned orcs, but does nothing to Durotan, his friend Orgrim Doomhammer (Rob Kazinsky), or the war-mongering Blackhand (Clancy Brown). Blackhand goes to attack Lothar, but Lothar shoots off Blackhand's...hand with his boomstick. The surviving orcs escape. Durotan rides a horse passing Garona, still in chains. He swings an axe to break her chain and free her. However, Khadgar holds her down with his magic, and she is captured by the humans.
Garona is brought to Llane's castle. She explains that her homeworld doesn't exist on the map of Azeroth, and that the orc army is coming to this world. She is then kept in a cell, but is given food and comfort by Llane's wife/Lothar's sister Queen Taria (Ruth Negga). Garona considers killing Taria to bring honor among the orcs, but Taria says there would be no honor among her people.
Blackhand stands before Gul'dan, who criticizes him running from the humans and allowing his men to die, saying he is weak. Gul'dan attempts to sentence Blackhand to death, but Durotan intervenes, explaining to Gul'dan that Medivh was controlling the fel against them, despite Gul'dan claiming only he can control the fel.
Durotan and Orgrim sit together and observe the orc camps. Durotan feels that Gul'dan's magic is what brought forth the decay of Dreanor, and if he continues, Azeroth will suffer the same fate. Durotan wants Gul'dan to be stopped, but Orgrim feels they must maintain a loyalty to their people.
Llane frees Garona on the condition that she be loyal to Stormwind. She guides Llane, Lothar, and others under Llane's command, including Lothar's son Callan (Burkely Duffield), to a meeting between them and the Frostwolf clan. Taria gives Garona a small dagger to defend herself.
The orcs and humans meet to negotiate a truce in order to kill Gul'dan. Durotan comes forward to speak, with Garona translating for Llane and Lothar. They are then ambushed by green orcs that are loyal to Gul'dan, along with Blackhand and his cronies. The evil orcs battle the humans, along with Durotan and his clan. Medivh creates a barrier between the humans and orcs, but Callan is left outside. Lothar is unable to escape the barrier or pull Callan in. Blackhand, with a new claw hand, impales Callan and tosses his body toward his father.
Medivh becomes weakened. He is brought back to his home and placed into his mana pool. Khadgar sees Medivh's eyes glow green, indicating he's been infected with the fel magic. Khadgar also learns from the book he took from Medivh's library that Gul'dan may have had help from someone in Azeroth with opening the portal. Khadgar leaves to seek help, while Medivh teleports Garona back to Stormwind.
Garona finds Lothar in a room, drunken and mourning Callan's death. She goes to his side to comfort him. Lothar says he no longer trusts Medivh.
Orgrim speaks to Gul'dan, who knows that Durotan has decided to side against The Horde, leading to his imprisonment while Blackhand takes out the Frostwolf clan. Gul'dan offers Orgrim a chance to take in the fel magic to become a stronger orc.
Khadgar rides a Gryphon above the clouds to the city of Dalaran. He meets with the other elder mages, all of whom are displeased with Khadgar for leaving them ages ago. He explains to the mages that the fel magic is spreading through Azeroth, and that Medivh is corrupted. Khadgar is brought to meet Alodi (Glenn Close), an older guardian and the shadowy figure from Medivh's library. She intentionally sought out Khadgar to summon him. Alodi says that Medivh has been fighting a demonic entity for a while, and he has since given into it, allowing himself to be corrupted by the fel.
Medivh is helped into his pool by Moroes (Callum Keith Rennie). The pool glows green with the power of the fel. Medivh absorbs Moroes' life force and he starts mutating into an orc-like creature.
Llane holds a meeting to unite others as part of The Alliance to fight against The Horde. Lothar isn't fond of the plan and instead thinks they should destroy the portal to prevent more orcs from invading Azeroth. Medivh (in his human form) teleports to the meeting, getting under Lothar's skin when he mentions Callan. Llane has Lothar put in a cell for him to calm down.
Orgrim realizes his error and secretly frees Draka and their child, whom Durotan had named Go'el. Orgrim then goes to free Durotan. While he is angry at his friend, Durotan forgives him after learning that he let Draka and Go'el escape.
Llane and his men head out into battle. Khadgar returns and frees Lothar from his cell after turning a guard into a sheep. Khadgar then starts to use his magic to figure out a way to fight Medivh.
Draka takes Go'el to a river where she places him in a basket to send him to safety. Another orc shows up as Go'el floats away safely. Draka rips out the orc's throat with her teeth, but she is fatally impaled.
Durotan challenges Gul'dan to a combat in front of the rest of The Horde. The two of them battle, with Durotan appearing to overpower Gul'dan, until the warlock uses his magic to drain Durotan of his life force, to the outrage of the other orcs. Gul'dan eventually kills Durotan, causing the other orcs to turn away from him. Gul'dan kills the green orcs that walk away, forcing the others to stay by his side. He then awaits for Medivh to start opening the portal while Gul'dan uses the life force of other prisoners to keep it going.
Llane and his army (now joined by Garona) begin to fight the orcs as they start invading. Meanwhile, Lothar and Khadgar try to fight Medivh, but he brings his clay Golem to life, leading it to attack the two. Lothar manages to decapitate the Golem, but its body is still conscious. Khadgar casts a spell to bring the Golem down on top of Medivh as it turns to stone. Khadgar exorcises the demon from Medivh, bringing him back to normal, but he lays dying beneath the Golem. With his last breaths, Medivh switches the portal from Azeroth to Stormwind, letting some of the prisoners free. Lothar rides his Gryphon toward the battle.
Realizing they will most likely not win, Llane tells Garona to kill him so that there may be a chance for peace between the orcs and humans. It would also allow her to bring honor to herself among The Horde. With total reluctance, Garona plunges her dagger into Llane's neck before Blackhand can strike. The orcs cheer on Garona and carry her toward Gul'dan, who welcomes her into The Horde. Lothar shows up to try and sees Llane dead with Garona's dagger still in his neck. He tries to take Llane's body, but the orcs pull the Gryphon down as he tries to leave.
Lothar is then forced into combat against Blackhand, now more powerful with fel magic. With two swift moves, Lothar impales Blackhand in retribution for Callan's death. Lothar earns the respect of the orcs, but Gul'dan wants them to kill him. He attempts to do it himself, but Garona urges him to stand down or else he will be forced to fight the other orcs. Lothar is then left to take Llane's body away.
Lothar is left by himself in his room until Khadgar comes in. He finds Garona's dagger that Lothar took out of Llane's neck, leaving Lothar to believe that Garona intentionally deceived Llane.
A funeral is held for Llane before the whole kingdom. Taria eulogizes her husband and has Lothar stand in front of everyone, as he is now set to lead The Alliance. Everyone rallies behind him.
The last scene shows Go'el still floating down the river. Durotan's voice is heard, saying that his son will become the new leader of the orcs that may bring peace among them. A man picks up Go'el's basket, and the baby growls at him.