Durga Singh (Raakhee) is a poor woman raising her two beloved sons Karan Singh (Salman Khan), the elder and Arjun Singh (Shah Rukh Khan), the younger. When Munim of an aging Thakur comes to talk to Durga, Karan and Arjun learn that their father is dead. Durga reveals that their father was the Thakur’s son, who had married her against his father’s wishes. Durjan Singh (Amrish Puri), a relative of Thakur, killed Durga’s husband to prevent him, Durga, or their sons from inheriting the Thakur’s estate. Karan and Arjun learn from her that the dying Thakur wants to give his estate to his grandchildren before dying as it is their birthright.
Durjan kills Thakur revealing to him that he had killed his son all those years ago and when he learns of his plans to sign over the estate to Karan and Arjun. He then brutally murders both Karan and Arjun by ambushing them with the help of his brothers-in law Nahar (Arjun) and Shamsher (Jack Gaud) in front of Durga. Durga cannot accept that her sons have died and prays to Goddess Kali to bring them back. Miraculously, Durga’s prayers are heard and her sons are reborn, but into different families with no knowledge of their past lives – Durga is unaware of this miracle. For 20 years she keeps persuading the people of her village that Karan and Arjun will come back. Durjan and his family mockingly give her garlands to put on the picture of Karan and Arjun. Durga vows to place the garlands over their dead bodies.
Arjun is reincarnated as Vijay. He falls in love with the wealthy Sonia (Kajol), but neither knows that Sonia is to marry Durjan Singh’s son, Suraj (Aashif Sheikh). Karan is reincarnated as Ajay. He soon works for Saxena (Ranjeet), Sonia’s father and Durjan’s partner in his illegal arms trading business. Karan and Arjun still have nightmares about their deaths in previous lives. On learning about Vijay, Suraj attempts to kill him, but ends up burning the farm of Arjun’s Uncle. At Sonia and Suraj’s engagement party, Vijay arrives and attacks Suraj. Ajay is sent to kill Vijay and the two start fighting.
Durga is given a sign of this when the photo of her sons falls. She rushes to the temple and prays to Goddess Kali. Vijay and Ajay suddenly stop fighting after a bolt of lightning strikes them. Saxena tries to shoot Vijay, but Ajay stops him whilst shouting for Arjun to run. This is something that Ajay had said to Vijay in their previous births when he was being attacked by Nahar. Ajay is sent to prison while Vijay escapes. Vijay is confused about the incident, mostly because he had dreamt of somebody saying those exact words to him. Sonia is forcibly taken to Durjan’s house to marry Suraj. She writes to Vijay begging him to come and rescue her.
Vijay and his friend Linghaiyya (Johnny Lever) travel to save Sonia. Everybody who sees him is stunned and calls him Arjun. He finally remembers his past life and reunites with Durga, where he gets to know about his brother Karan, who is now Ajay. Vijay saves Ajay and explains the whole situation. Ajay refuses to believe, but when Durjan’s brothers-in-law attack Durga, he remembers his previous life. Durjan hears about Karan and Arjun’s return, but refuses to believe it, so his brothers-in-law attempt to bring them before him. In the process, they are killed by Ajay and Vijay in a similar way as they killed Karan and Arjun and Durga places the garlands over their dead bodies.
At the village temple of Goddess Kali, rituals are held for Sonia and Suraj’s wedding. Karan and Arjun frighten Durjan by convincing him that they are back. Soon, Saxena and Durjan have a falling out, after which a fearful Saxena tells Sonia to run away with Vijay. Sonia meets Vijay, but just as everybody is helping them, Durjan and Saxena arrive, making them realize that it was a ruse. Ajay succeeds in creating a diversion, letting Vijay and Sonia escape. Vijay kills Suraj, upon which Durjan kills Saxena in a fit of rage.
After all his henchmen are killed, Durjan attempts to kill Karan and Arjun. They overpower him. He runs to Durga and begs her for forgiveness. However, she orders her sons to kill him for revenge. They do so and Durga places the garland over his dead body, fulfilling the promises she made to him. Later, at Goddess Kali’s temple, Arjun marries Sonia and Karan marries his love Bindiya (Mamta Kulkarni), after which Durga places the bangles her sons gave her on her daughters-in-law’s wrists, as she promised Karan and Arjun 20 years ago and the family is finally reunited.