Prince Ashoke (Shahrukh Khan), heir to the Magadha Kingdom, bowing to his mother's (Shilpa Mehta) demand forsakes his princely status and goes to live in the wild for awhile.
There he meets and falls in love with Kaurwaki (Kareena Kapoor). He identifies himself as Pawan, not wanting to disclose his identity yet. Ashoke has to return to Magadha, but when he returns to find and wed Kaurwaki, he is told by Bheema (Rahul Dev) that Kaurwaki and her brother Arya have been killed. Devastated Ashoke returns home.
On the way home he is attacked and Devi (Hrishitaa Bhatt), of the Buddhist faith rescues him and tends to him till he gets well. As a result, Devi's marriage to her groom is cancelled. Ashoke weds her and brings her to Magadha, only to be told by his father that since Devi is not of the same race as he, she cannot be welcomed.
Ashoke leaves with Devi and lives in Ujjaini. Soon Devi gets pregnant, and this arouses jealously and hatred amongst Ashoke's step-brothers. As a result they plot to kill Devi, however, their plans are foiled by Ashoke's mother, who is killed. Ashoke swears to avenge his mother's death by killing his step-brothers one by one, except for one, who has fled to Kalinga.
Ashoke asks the ruler of Kalings to turn over his step-brother to him, and they refuse. Ashoke swears to raze Kalinga to the ground. Ashoke is unstoppable. Even his close friend, Virat (Danny Denzongpa), too, is unable to stop Ashoke. Ashoke as he proceeds to war, little knowing that the queen of Kalinga is none other than Kaurwaki, who is still alive.