This fast-paced crime drama revolves around Bangalore-based Police Inspector Amar (Akshay Kumar) who was convicted for killing a man as a juvenile. He is approached by Mumbai's Police Commissioner Vinod Talwar (Naresh Suri), and is assigned the task to go undercover and locate and kill the killer(s) of a businessman, Khanna.
Amar soon finds out that the culprit is none other than his childhood friend, Raja Lokhande (Nagarjuna). Amar's other childhood friends, Jaggu Lokhande (Paresh Rawal) and Surya (Irfan Kamal) are also working for Lala Roshanlal (Gulshan Grover), a major ganglord. He joins their gang as well using their friendship.
Meanwhile, Amar rekindles an old flame with his childhood sweetheart, Pooja (Pooja Bhatt) who is also Surya's sister. Pooja has distanced herself from her brother and friends as she wants to lead an honest life. Amar tells her that they can be reformed.
Meanwhile, Lala starts to suspect Amar to be the mole in the gang after an encounter goes wrong. Jaggu confronts Amar who denies it, supported by Raja. Jaggu then tells him to kill a Police Inspector to prove himself. Amar agrees and Pooja, in anger, distances herself from him as well. Amar later indeed shoots the Police Inspector in front of the gang and has proved his worth. However, it is later revealed that the shootout was just a hoax.
Vinod now confronts Amar telling him that he is not killing Raja and others because they are his childhood friends. Amar still insists that he can reform them and that Lala is the only actual culprit. Meanwhile, Surya tries to make up with Pooja and asks for her to tie Rakhi on his wrist. At the same time, Lala's brother enters lusting after her. This angers Surya who beats him very hard.
Lala later hides at home but when Amar and Raja go out to lookout for police, Jaggu calls him outside. It turns out that Jaggu betrayed Surya and gets him killed. Raja is now hungry for Lala's brother's blood and kills him while Amar reveals to Pooja that he is actually an undercover cop. Amar finds out that Raja has killed Lala's Roshanlal and confronts him.
However, the police force enters at the exact moment to shoot Raja while Roma, Raja's girlfriend faints. Amar reveals that he is a cop and begs to take Roma to the hospital while Raja runs away. Very angry now, Raja confronts Amar and is about to kill him but Amar manages to calm him down and Raja agrees to surrender after Roma is found pregnant.
Jaggu meanwhile receives news from Lala that he can hide Raja but should bring Amar to him. Jaggu goes to their place and gives Raja tickets to escape Mumbai but he insists to surrender. Jaggu angrily tells him that police can't be trusted but Amar then reveals that he knew Jaggu was the one who got Surya killed.
Jaggu realises what grave mistakes he has done and agrees to surrender as well. However, Lala's men start to attack their place with fire bombs so Amar and Raja go out to finish them. Raja gets shot in the knee and tells Amar to catch Lala at any cost. Amar chases Lala and finally catches him. He then kills Lala at the spot and Vinod and the police arrive.
In the end, it is revealed that Raja and Jaggu will face 10 and 6 years of jail respectively after they agreed to be police informants. Meanwhile, Amar is taken to police custody for questioning.