Vishal Agnihotri (Sunil Shetty), a convict, was imprisoned for the murder of a group of four criminals. They had brutually gang raped his sister. Vishal tried to get justice in court but was unsuccessful and the men were let out free with the help of a corrupt lawyer. They then visit Vishal's home for trying to file a case on them, and then try to rape his wife, but before they could get near her she killed herself with a knife.
Angered at all this Vishal decides to take the matter into his own hands and murders the four criminals himself. He is sentenced to life in prison for the crimes.
Journalist Roma (Raveena Tandon) visits the jail for a report she's writing, where a few of the convicts grab hold of her and try to rape her. This incident reminds Vishal his misfortune.Vishal intervenes and saves Roma. Roma hears Vishal's story and decides to help free him.
This publicity gets noticed by someone who is made out to be a blind and noble businessman - Mr Jindal (Naseeruddin Shah). He tries to recruit Vishal under his wing as a hitman. He wants Vishal to kill some anti-social elements in the city beyond the law, mainly the two powerful drug lords Jibran and Tyson (Gulshan Grover) and all the people who work for them, people who he says to Vishal are responsible for making people like the group of four men he killed into criminals in the first place by bringing the drugs to the streets and corrupting the locals. Vishal refuses at first as he just got out of prison, and now wants to live a normal life. However, the memories of his murdered family comes back to haunt him as he spends a day alone in his home, and he agrees to work for Jindal the next day.
Police Inspector Amar Saxena (Akshay Kumar) is unhappy about the release of Vishal who he believes deserves to be in prison because of the murders he committed. Things complicate even more when Amar finds Vishal around almost every murder scene of criminals involved drug-trading, who Amar is trying to catch alive.
Vishal learn of Jindal's true identity, and realize that Jindal had just been using Vishal to wipe out the competition in the drug smuggling business for him. Jindal attempts to murder vishal but is unsuccessfull but he thinks vishal has been wiped out.
Vishal is then caught by amar who get into a huge fight at roma's house. When vishal is getting the upper hand amar cheap shots vishl with a shovel and locks him up.
Vishal then reveals jindal's true colours to amar and informs him that his fathers murderer is indeed jindal.
Amar and Vishal join forces after Vishal agrees to surrender when they catch Jindal. They storm Jindals hideout and rescue Roma whom Jindal had kidnapped. In the end Vishal heroically sacrifices himself so amar could shoot jindal. A final salute by vishal to amar and vishal bows out just before the credits.