Shiva [Ajay Devgn] is a ruthless hitman working for the feared gangster Anna. When a contract comes from the corrupt politician Bhavani Singh [Mohan Joshi] to kill the Chief Minister, Shiva takes the job and, though he manages to shoot the CM, the man survives. In the escape, Shiva accidentally kills a bystander, and the incident unsettles him enough to demand compensation for the dead man’s family. On Anna’s orders, Shiva retreats to Mumbai under the alias Ajay.
On a train, Ajay crosses paths with Shivcharan [Amrish Puri], a kindhearted man who rescues his family from assailants. Shivcharan reveals that he is a policeman, and implies that enemies are out for revenge. In Mumbai, Ajay finds shelter with Mrs. David [Aruna Irani], a landlady who treats him like a son. He saves Sudha [Tabu], a woman with a quiet strength, from a group of hooligans and immediately falls for her. The hooligans’ ringleader is the brother of the dreaded don Bhavani Singh [Mohan Joshi], and Ajay is arrested and harassed before Shivcharan intervenes and gets him released. Shivcharan, who has incriminating evidence against Bhavani, plans to hand it to the Chief Minister [Satyendra Kapoor], but he is attacked and hospitalized. In the hospital, Bhavani’s assistant Batuklal [Ghanshyam Rohera] plants a bomb in the ward to kill Shivcharan, but Ajay uncovers the plot, saves Shivcharan, and kills the assistant. Bhavani roars with fury and vows vengeance.
Ajay and Sudha grow close, but Sudha is hesitant to remarry as a widow whose family would object. Ajay proclaims his love and marries her, despite the protests of her sister-in-law, with blessings from Shivcharan and Mrs. David, and the community’s support. The couple begins a new life, leaving their troubled pasts behind and settling into a hopeful routine.
Shivcharan discovers Ajay’s past but spares him when he sees Ajay rescue two small children from an accident. Ajay opens a garage, and at the inauguration, Shivcharan burns the evidence against Ajay, saying it would be a sin to persecute a man who has reformed for good.
Yet trouble returns when Anna visits Ajay and urges him to return to crime. Ajay refuses, explaining he has washed the blood from his hands. Anna then reveals that the man Ajay killed was Sudha’s first husband, a truth Sudha overhears and is devastated by. She also learns she is pregnant with Ajay’s child. Anna and Bhajan Singh, who have aligned with Bhavani Singh once again, press Ajay to surrender, but he remains steadfast.
Meanwhile, Anna has Sudha’s brother attacked, and Ajay enters a fighting competition to raise money for his treatment. He wins, but Sudha rebukes him, reminding him of his past. Mrs. David and Sudha’s sister-in-law urge reconciliation, but before anything can happen the three women are attacked and Sudha is kidnapped. Anna, Bhavani, and Bhajan Singh force Ajay to obey in exchange for Sudha’s life. Ajay seemingly kills the CM and escapes as Shivcharan watches in despair. It is later revealed, however, that the CM is alive and the whole scene was a trap. Bhajan Singh makes a final bid to kill the CM but is killed by Ajay. Anna and Bhavani flee to the roof, where they are cornered by Ajay and Shivcharan. Ajay defeats them and surrenders to Shivcharan, who vows to seek a reduced sentence. In the end, Sudha and Ajay reconcile and prepare to face the future together.