Somewhere in London, Colonel Viren Nanda (Jimmy Shergill) goes to meet a wanted terrorist Omar Zafar (Danny Denzongpa) in his holding cell. As Viren informs Zafar that he will be extradited back to India for his crimes, Zafar's men enter his holding cell, led by Hamid Gul (Jaaved Jaffrey), killing all guards around them, with Zafar then killing Viren by shooting him and then burning him. As Zafar escapes in a helicopter waiting on the roof, he puts a $5 million reward for someone to steal the Koh-i-Noor diamond from the Tower of London, but with one condition – the thief must be Indian, to hold up a new extradition treaty between India and UK. Soon after, a man named Rajveer Nanda (Hrithik Roshan) steals it, and when Zafar's men are informed of the theft, they travel to Rajveer for the deal. Although they initially travel with the $5 million reward, Rajveer informs them that he now wants $20 million for the deal. Following the disdain of the comment made by Rajveer, a fight breaks out between Rajveer and Zafar's men after which Rajveer flies away. After Rajveer escapes, a CCTV footage of him is captured, showing that he is in Shimla. Following an escape, he sees a young lady, Harleen (Katrina Kaif) sitting in a restaurant, who is there waiting for her internet date, "Vickie", to show up. Rajveer enters the restaurant posing as "Vickie" and woos her over. He convinces Harleen to use the bathroom and while she is in there, Rajveer fights the remaining men who came searching for him and leaves the restaurant, much to the dismay of Harleen. As she drives home, Harleen accidentally runs over Rajveer, who asks her to stitch up a gunshot wound sustained during the fight. Rajveer then gives Harleen drugged water, with her complying with what he says about the government officials, informing her about where to find guns underneath car seats and what they will say about him.
The next day, the government officials with Zorawar (Pawan Malhotra) visit Harleen at her bank and threaten her to come with them. They tell her that if she does not accompany them, then they will reveal everything to her colleagues. Harleen decides to go with them to the police station. In the car, Zorawar tells her that they are not going to the station but they are taking her to a safe place instead. Harleen remembers about the gun that Rajveer had told her of. She engages the other official in small talk and finds the gun. She threatens both the officers to stop the car and let her go. At the same time, Rajveer appears on a bike and a chase sequence ensues. Both Rajveer and Harleen find a car and escape. When Rajveer goes out to shoot the goons, Harleen escapes and then bumps into her boss, Karan. She tells him about Rajveer and how random people are firing at her. Rajveer follows her. Karan tries to protect Harleen from Rajveer. He annoys Rajveer and gets shot by him in the leg. Harleen is exasperated but leaves with Rajveer again lest he shoots any more people.
In the car, Harleen and Rajveer get into an argument. Harleen states that she wants to go home and that she had made a huge mistake by trusting him. Rajveer angrily decides to let Harleen go and hands over the car keys to her. He tells her that he has no other motive than protecting her. She feels guilty and decides to stick to him. They begin to drive again in silence. Rajveer checks a location on his phone which Harleen notices. He then tells her that he has not killed an innocent person before this and does not want her to die. He tries to convince her to come with him for dinner.
They go to Pizza Hut where Rajveer realises that he has no money to buy food. They get into an argument about it. He teases Harleen about her internet dating and she slaps him. He threatens to shoot the server (Aditya Prakash) and she eventually pays for the pizza. Harleen asks him about the crime that he has committed and Rajveer shows her the Koh-i-Noor much to her surprise. She has a hard time believing that he is indeed a thief. As she comes to know about Rajveer, they realise that they were followed by Zorawar who says he has the restaurant surrounded with his men and will not be afraid to shoot Rajveer if needed to. As the officials convince Harleen to go with them, Rajveer tells Harleen that he cannot let her go with them. He shoots her with a tranquilizer dart and they both jump out of a window and escape.
Harleen slips in and out of consciousness as Rajveer continues to take her to safety. She wakes up in a beach shack wearing a bikini top and shorts. She angrily asks Rajveer as to who changed her clothes and he confesses that he did it. She is irked beyond words. She beats him and bites his hand. Harleen then takes Rajveer's phone to call her grandmother, unbeknownst to her it allows the government officials to track their position. After a shootout occurs between Rajveer and the government officials, he escapes with Harleen with a help of a sea bob and a flyboard.
Harleen wakes up the next morning in Prague. As Rajveer was able to successfully lead the escape of them both, Harleen now entrusts Rajveer, subsequently falling in love with him. When Rajveer goes out of his hotel with Harleen, he sees that they are wanted by Interpol. Some policemen come at the moment and, in the process of concealing their faces, Rajveer and Harleen end up sharing a passionate kiss. Rajveer tracks Hamid Gul at a casino. Although he was to go alone, Harleen insists to take her along, to which he agrees. Staging a ploy for Gul's attention, Harleen and Gul meet in the hallway, where he tells her that a romantic candlelit champagne drink is waiting for her on the roof of the casino. Following this, Rajveer visits Gul at the top of the casino, and a fight ensues regarding the whereabouts of Zafar and he ultimately kills Gul. In the meantime, Harleen spots Zorawar and is taken to the Indian Embassy in Prague, where Zorawar says that Rajveer actually came to Prague to find Gul. Harleen is asked to get the Koh-i-Noor back. That night, the two meet on a bridge, where Harleen says that the trust between them is broken. Rajveer activates the tracking device himself, allowing the officials to surround them. Rajveer gives the Koh-i-Noor to Harleen and jumps from the bridge, but is shot, and is assumed dead.
Harleen then returns home and remembers the address location that Rajveer was viewing on his phone. At the address, Harleen meets Rajveer's father Pankaj (Kanwaljit Singh) and his mother Shikha (Deepti Naval). At the house, Harleen sees photos of Rajveer (Jai) and Viren, who are later revealed to be brothers and Rajveer's mother revealing their back stories. Although it is confirmed that Viren was murdered, Rajveer's father says that he does not believe the story the Army told him, saying that Rajveer had drowned despite being a swimming champion in his youth, as he was the only student who was able to cross the lake in only one breath. On her way home, Harleen is kidnapped by Zafar, who learns and reveals that the diamond was a fake. Zorawar is then revealed to be Zafar's right-hand man, and gives Harleen a truth-revealing drug to reveal the location of the real diamond. Harleen tells that Rajveer would have survived and is coming to kill Zafar. Rajveer, in the meantime, is revealed to have actually survived, and silently kills every guard posted outside and places time bombs in every corner and enters the room. Zafar then orders his men to beat Rajveer but before Zafar is able to kill him Rajveer informs that the Koh-i-Noor was not stolen at all and it was a joint operation between the MI6 and the Indian Secret Service to get Zafar. The time bombs go off and destroy the castle. But Zafar manages to escape and captures Harleen again, after making Rajveer crash. As they escape with her, Rajveer follows them with an F1 car and catches up to them. Zafar enters a flight with Harleen. Killing the rest of Zafar's men including Zorawar, Rajveer shoots at the flight blades evidently grounding the plane. Rajveer soon boards the plane and a final bout takes place between him and Zafar. After throwing him to the flames, Rajveer frees Harleen. When they are escaping from the aircraft, Zafar emerges from the flames again and shoots Rajveer. Rajveer pushes Harleen out of the aircraft and a second bullet hits him. He then grabs the axe and charges towards Zafar and kills him. When the aircraft is about to explode, he jumps out. He loses consciousness and is about to drown when Harleen grabs his hand. The authorities airlift an injured and unconscious Rajveer and Harleen.
Rajveer then wakes up in hospital, where his commandant Narayanan (Vikram Gokhale) is sitting across him waiting for him to wake up. He congratulates Rajveer for successfully completing the mission. He rues about the fact that his brother was murdered and that his parents will never get to see him again. Also, he informs Rajveer that Harleen has been sent back to her home and he has to forget about her because she can become a threat to his life and also his weakness. Rajveer is also told that he will be shifted to a safe facility the next day. After the chief leaves, a nurse arrives and gives Rajveer a medicine to drink. As soon as Rajveer gulps down the medicine, he feels giddy and asks the nurse about it. The nurse turns around and removes her mask revealing that she is actually Harleen and the medicine was a sedative meant to knock Rajveer out. A surprised Rajveer tries to say her name but Harleen asks him to keep quiet. Rajveer faints and Harleen escapes from the hospital along with him. He continues to slip in and out of consciousness until the next morning. He wakes up and Harleen tells him that his one-day has arrived. Rajveer realises that she has brought him to his house. He silently thanks her, and they both meet his parents.