Ballu (Sanjay Dutt) is a gangster who is arrested by Inspector Ram (Jackie Shroff). Ram shows compassion to Ballu while trying to get information that would lead to capture of Ballu's boss and mentor, Roshida. Ballu does not speak, and he promises to escape from the jail.
Ballu escapes from jail while Ram is visiting his girlfriend, Ganga (Madhuri Dixit), who is also a police officer. When news of this breaks out, Ram's reputation is in tatters as the media portrays Ram as an officer who has neglected his duty.
Ganga, in an attempt to restore Ram's reputation, goes undercover as a street-girl. Ganga realizes that Ballu is a kind-hearted person who turned to crime due to poverty and circumstances, and she tries to rehabilitate him while on the run. Meanwhile, Ballu begins to fall in love with Ganga. He becomes enraged when he finds out she doesn't love him and is a police officer. Ganga continues to help Ballu as she has seen good in him.
Meanwhile, Ram approaches Ballu's mother for help and realises that Ballu is, in fact, his childhood friend. Ballu's mother and Ballu then tell Ram and Ganga, respectively, the story of how Roshida used their poverty to corrupt Ballu. Roshida killed Ballu's sister, and put the blame on the police. Ballu kills the officer he believes to be behind this and from then on spirals into a life of crime.
Ganga, afraid that police will kill Ballu, stops the police from shooting him, allowing him to escape. She is hence arrested for aiding a criminal and is accused of being in a relationship with Ballu, which destroys her professional and personal reputation.
Ballu's mother finds him, while she is followed by Ram. In the following confrontation Ballu's mother takes Ram's side trying to convince Ballu to give himself up. Ballu seeing Ganga's picture in Ram's wallet realizes that this is who she loves.
Ballu manages to escape to Roshida's base where Roshida promises to help him escape but betrays him and attempts to kill him and his mother. The police, led by Ram, attack Roshida's lair. In the ensuing conflict Ballu finds out that Roshida killed his sister. Ram kills Roshida and Ballu escapes.
Following Roshida's death, Ballu installs himself as the new boss - but his girlfriend informs him that Ganga is about to go on trial for aiding him. Having a change of heart, Ballu appears to attack the court but then surrenders himself and swears that Ganga is innocent, thereby restoring her reputation and reconciling her and Ram.