At the beginning, Izna, a porn star (Sunny Leone), is lying dead in the grass, but she says that she wants to ask forgiveness from somebody for her sins. The story then goes back 6 months.
Izna is hired by an intelligence officer Aayan Thakur (Arunoday Singh) and Security Chief Guru Saldanah (Arif Zakaria) to become a 'honey-trap' and help them retrieve critical information from a dreaded assassin, Kabir Wilson (Randeep Hooda). During this mission, Aayan gets to know about Izna's previous relationships with Kabir when Kabir himself used to work for the intelligence. During one of his missions where Izna was being used for drug-peddling in a pub, which she was unaware of, Kabir arrested the guilty drug-peddlers, and Izna explained that she was innocent. Kabir took a coin from her and explained how the coin saved her from an arrest. He had seen her pick it up from the street after she dropped it, something a person in a drug-cartel would not do. Izna started loving Kabir and followed him home, handing him a love letter written in her own blood. Both started loving each other, but one day, Kabir disappeared without any word. Six years passed and Izna did not find him despite many efforts.
After Izna agrees to the mission, she is taken to a residential colony in Sri Lanka to live where Kabir also lived with an identity of a musician. Izna is asked to act as Aayan's fiancee and is given a story of how they both met each other. Izna then is asked to go to Kabir's house to introduce herself as his new neighbour, but he acts as if he does not recognise her. The very next day, he writes "Sorry" on her window in his blood but flees as soon as a phone call comes. Kabir attacks Guru Saldanah's team but Saldanah makes an escape and plans to stop the operation. Aayan plans to steal the data from Kabir while Izna takes Kabir out. Izna sends a letter to Kabir telling him that she wants to meet him, and Kabir leaves his house. Aayan moves to Kabir's house to steal the data. When he copies data from Kabir's laptop, it gives Kabir an alert to his phone, and Kabir runs towards his house. Aayan escapes with the data, but he later discovers that it had all been falsified. Izna says that she will never forgive Kabir and will bring him down.
Kabir, who still trusts Izna, had never had reason for suspicion of her; not so with his trusted friend Sumit, who suspects her and warns Kabir about her. Kabir proposes to marry her and asks Izna to shift to his house and leave Aayan. Izna agrees to this. But in the meantime, Aayan, who has fallen for Izna, is angered upon hearing this. She claims that she will only be able to steal the data once she gets into Kabir's house. She moves to his house and starts staying with Kabir. Kabir asks Sumit to arrange for a priest for the marriage, who accidentally reads an SMS to Aayan on Izna's phone, which proved she was a spy. Sumit goes to kill Aayan, but instead, he is himself killed in a gun battle. Aayan calls Izna for some urgent talk and expresses his fears that they can no longer play this risky game as when Kabir will find out that Sumit is killed, he will kill Izna. Aayan gives her poison and asks her to mix it into Kabir's drink.
When Izna is not at home, Kabir goes to Aayan's house and discovers Sumit's hearing aid. To find more about Sumit, Kabir searches the house and ends up discovering a book inside Izna's bag which has a similar story that Izna told to Kabir regarding her meeting Aayan. This confirms Sumit's suspicions, and Kabir waits for Izna. When she does return, she offers him coffee. However, she blends the poison Aayan had given her into the coffee she serves him. Kabir tells Izna that years ago, he had left Izna for a sting operation, only to discover, during the operation, that the country's own officers, security forces and politicians were corrupt. Therefore, he had shortlisted them and then he had them killed. According to Kabir, he was a patriot, not a terrorist.
Dumping out the poisoned coffee undrunk, Kabir tells Izna that the Guru Saldanah is a fraud, and his team impostors, who will kill Izna once they get the hard disk containing the original data. He asks Izna to escape and offers her a new passport, tickets, and access to an account maintained at a Swiss bank from which she can withdraw unlimited money. When Kabir hugs and kisses her before their separation, Izna shoots him in the stomach, upon which Kabir immediately dies. Running away with the hard disk containing the original data, she goes to Guru Saldanah and hands over the hard disk to him. However, she is soon surprised to know that Guru Saldanah is indeed a fraud, as Kabir had pointed out, and that after the task, she was supposed to have been killed. Aayan was given this responsibility, but he had changed his mind as he was in love with her. As Saldanah tried to kill Izna himself, Aayan tackled him and killed him instead.
Izna told Aayan that because of their fraudulent mission, she killed an innocent person, and that too, the love of her life who blindly trusted her. Izna says that she would prefer to die with Kabir than live with Aayan, and attempts to leave with the hard disk. Aayan threatens to shoot Izna if she leaves the house. Izna then leaves the house. Aayan follows her and then shoots her in the back. Aayan approaches her and turns her over. Still alive, Izna shoots Aayan twice and kills him. Then she is seen with Kabir after death, and she tells him that without him, Heaven is not a heaven, and with him, she has no reason be afraid of Hell.