The movie starts with Max Payne (Mark Wahlberg) struggling to surface in a frosted river while also narrating. The film then cuts to one week earlier, showing Max working as a clerk in the cold-case unit and his obsession with finding the fleeing killer who brutally murdered his wife, Michelle, and newborn daughter. Max then attends a party run by his snitch, Trevor Duncan, where he meets Natasha Sax (Olga Kurylenko) and her sister, Mona (Mila Kunis). Natasha and Max go back to his place where she demonstrates her desire to have sex and even offers to act as Max's deceased wife. An upset Max asks Natasha to leave and while she is walking in a alleyway and talking to her drug dealer on the phone, she is hunted, attacked and killed by a mysterious flying entity.
The next day, Max goes with his former partner Alex Balder (Donal Logue) to investigate her murder. Alex then reveals Max's wallet was found at the crime scene and that he is the prime suspect. Back in his office, Alex discovers that a tattoo of wings found on Natasha's arm is similar to the one on the arm of one of Michelle's murderers, killed at the crime scene. He tries to call Max to reveal his finding, but in vain as he's answered by his voice mail. Max receives his message and rushes to his apartment, only to find Alex dead. Suddenly, he is attacked and thrown around until he blacks out. Max wakes up in hospital beside his mentor B.B. Hensley (Beau Bridges). Max goes to Alex's house to offer his condolences but is forced to leave by his wife Christa Balder (Nelly Furtado), stating that Max has always pushed away everyone who ever cared about him. Later, Max again meets Mona Sax, who believes he killed Natasha, but Max convinces her that they are both looking for someone else. After storming into Alex's precinct and searching through his partner's investigation files, Max learns that a man named Owen Greene was the last person Natasha called before her death.
The scene shifts to crime boss Jack Lupino (Amaury Nolasco) who has become unstable and increasingly berserk due to addiction to the drug Valkyr. He gives the drug to another wing-tattoed junkie and shortly afterwards kills him. Max and Mona find Owen Greene's apartment but hear him screaming. Owen has also become unstable and hallucinated due to Valkyr and backs away from Max and Mona towards the edge of the apartment. He is then pulled by a demonic creature on wings and falls to his death. Max and Mona go to see a tattooist who did Natasha's tattoos; when asked about the winged tattoo, he tells that it is the wing of a Valkyrie, the Norse mythological deity that carried to Heaven only those that died violently in combat. Max then arrives at Aesir Pharmaceuticals headquarters, Michelle's former workplace, to talk with her former supervisor, Jason Colvin (Chris O'Donnell). After brutally beating him up and even holding him at gun point, Colvin reveals everything. He explains that Michelle was working on a big military-related project with Aesir's CEO, Nicole Horne (Kate Burton) concerning the development of a stamina-enhancing drug for soldiers. Colvin also reveals that the drug only worked in 1% of the test subjects and the remaining suffered severe traumatic hallucinations about demonic creatures. Colvin tells Max that everything he wants to know is inside an envelope Colvin has been carrying around. Max and Colvin attempt to escape but a S.W.A.T team arrives, after being alerted by Colvin's secretary. Colvin is purposely shot dead but Max manages to escape with the envelope, amidst a shooting spree, not before a brief encounter with Jim Bravura (Chris "Ludacris" Bridges), an internal affairs agent.
Mona later finds Max in a abandoned warehouse, watching the video inside Colvin's package. It is revealed that Aesir Pharmaceuticals was the company manufacturing Valkyr for the military. It was a drug created for the purpose of enhancing a soldier's ability in combat and to control their fears. It is also revealed that, before becoming unstable and a rampage killer, Jack Lupino was a former sergeant who volunteered for Valkyr testing; in the video interview, Lupino stated that "he felt invincible" and "suffered no side effects". Mona tells Max that Lupino's lair is at Ragna Rock. Subsequently, Max goes there and successfully kills all of Lupino's henchmen with ease. Max then encounters Lupino, who attempts to force the drug into Max's body. Before he can, he is shot dead by B.B.. While leaving Ragna Rock with B.B., Max is knocked unconscious by B.B.'s assistant. Max is then showed walking handcuffed between B.B. and his assistant, who confesses he is the lead manufacturer of Valkyr and the runaway killer that Max has been searching for. B.B. and his partner then attempt to eliminate Max. Making him look like an drug-addicted suicidal by slipping two vials of the Valkyr drug in his jacket pocket, and then attempting to drown him in a freezing river. Max sinks to the bottom as we saw in the opening scene of the movie, but only the thought of his wife and daughter give him the strength to struggle and he barely makes it out alive. In order to combat freezing to death, he ingests the two vials of Valkyr that B.B. had earlier put in his jacket. The effects are felt immediately as he revives his strength and anger and hallucinates with the demonic winged creatures as seen by Valkyr-consuming subjects, which are revealed to be the mythological Valkyries.
A strengthened and berserk Max then rushes to Aesir Pharmaceuticals to kill B.B., but amidst all the shooting and due to his increasing hallucinations, Max is almost killed by one of B.B.'s security team members, before Mona arrives, saves Max and offers to hold the rest off until he reaches his former mentor. B.B. has arranged a helicopter to evacute him while his assistant tries to blow up the rooftop access with explosives. Mona fatally wounds the assistant, but he still manages to blow up the floor he is on. Max catches up with B.B. and, despite being shot twice, he shoots B.B. dead. Max then slumps near the edge of the building and the dark, snowy, cloudy city sky is now clearing up and the sun appears shining on Max's face. He then experiences a flashback of himself, his wife and daughter and the film ends with Michelle saying "Not yet, Max."
There is a post credit scene, where Max Payne meets up with Mona Sax at a bar. There is no dialogue between Mona and Max, Mona just gives Max a newspaper article that has Aesir's CEO, Nicole Horne on it with the headline "Aesir stock soars" (or something like that). Max and Mona give each other a look of pleasure knowing who is going to be next