- Michael Fassbender as Moon Knight/Marc Spector/Jake Lockley
- Joseph Gordon-Levitt as Frenchie/Jean Paul DuChamp
- Ben Foster as Shadow Knight/Randy Spector
- Jackie Earle Haley as Raoul Bushman/Black Spectre
- Scarlet Johannson as Marlene Alraune
- Billy Crystal as Dr. Peter Alraune
- Michael Shannon as Johnny Blaze
Marc Spector and Frenchie are mercenaries/assassins working for Raoul Bushman. One day, Marc is sent on a mission to Egypt to kill Dr. Peter Alraune. When Spector gets to Egypt, he meets and falls in love with a woman named Marlene. He discovers that she's Peter Alraune's daughter, and decides not to murder her father because he loves her too much, and he stays in Egypt with Marlene and Alraune, becoming good friends with the doctor in the process. After 6 months, Raoul comes to Egypt to personally kill Alraune, and Spector for his betrayal. Marc tries to warn Peter, but Raoul kills him. Spectorattempts to get revenge and attacks Bushman. They fight for a long time, and Spector finally pushes Raoul into a river, and is presumed to die.
Marc then falls into a coma due to exhaustion and a stabbing wound Raoul gave him. Marlene and Frenchie can't save him, so they take him to the Temple of Khonshu, the Moon God. Their, he is nursed back to health, and given a sacred statue that belong to Khonshu. Spector sudddenly glows a bright green, and electricity shoots out of his arms. An apparation of Khonshu appears, and says that the transformation is complete. Spector is now the Moon Knight.
The trio heads back to America, and Spector turns a new leaf and becomes a vigilante named Moon Knight who often kills criminals, with Frenchie as his gadget man. His killing sometimes puts him at odds with Marlene. Marc also uses the secret identity of cab driver, Jake Lockley, due to his checkered past. After a month or so, the pressure of having three identities causes him to lash out at Marlene and she leaves him. Meanwhile, Raoul is revealed to have not died. He breaks Marc's insane brother, Randy, out of the asylum, and they go back to Egypt to get powers from Set, the God of Evil. Randy becomes the Shadow Knight, and Raoul becomes Black Spectre, but he process causes his body to slowly deteriorate.
The two return to America, and Raoul goes to Frenchie's apartment and brutally stabs him, but afer Raoul leaves, Marlene finds Frenchie and takes him to the hospital. Raoul sees Randy randomly attacking and killing citizens. Raoul tells him that they have a plan, and that he needs to stick to it. Randy asks why, and Raoul says that it is because Randy is too stupid to come up with his own plan. Randy then attempts to kill Raoul but Raoul's body has deteriorated enough that he dies anyway.
Marc is shown rushing to the hospital to see Frenchie, but Randy comes and jumps on top of his cab/car. He cuts a hole in the top, and pops in. Randy tries to kill Marc but Marc fights back and drives the car over the edge of a bridge, but jumps out in time to save himself. Randy latches onto his foot though, and they keep fighting on the bridge. Marc gets the citizens to leave, and Randy stabs Marc through the shoulder, pinning him to the ground. Randy then kills someone and drives to the hospital in their car, intending to finish off Frenchie and kill Marlene.
A random bystander comes and cleans Marc's wound, and Marc thanks him. The man says his name is Johnny Blaze (hinting at a Ghost Rider film) and drives Marc to the hospital on his motorcycle. Marc gets to the hospital and asks for Jean Pau DeChamp's room. On the way, he finds Randy holding Marlene and some nurses hostage. Marc hrows his staff at Randy and it stabs him in the eye, distracting him. Marc shoots him in the leg. However, while Marc is attending to the wounds of the hostages, Randy gets away. Marc tells Marlene to take care of Frenchie, and runs off. Marc chases Randy all the way to a nearby church, where he is tied up. Randy is about to push Marc out the window, when he is suddenly shot between the eyes, and falls over. Frenchie (in his hospital gown) is revealed to be the shooter. He escaped from the hospital with Marlene in tow and killed Randy. Marc decides to temporarily retire from being Moon Knight, so he can live a somewhat normal life. He gives up his Lockley persona, and starts dating Marlene again.
In a post-credit scene, Marlene and Marc get married with Frenchie as the best man.