Mugal Ruler Aurangzeb banned music in India, since he believed that music departed the person away from god. This ban continues in the next generations. Music lovers and singers start living in secret places away from cities. Baba Makhdum (Mukesh Rishi) is staying near Kasur with some of his followers and practices music where Waris Shah (Gurdas Maan) comes and join him. Baba Makhdud tells appreciates his talent but ask him to feel the pain in order to get best out of him. On Baba Ji???s suggestion Waris moves to the village Malkan Hans, where music isnt banned. Mugal Ruler finds out about Baba Makhdum and kills him. Waris Shah meets Bhaagpari (Juhi Chawla) in Malkan Hans. The two fall in love. Saabo (Divya Dutta), too, gets attracted to Waris Shah, and is willing to do anything to get Waris. Waris starts living in the masjid of the village and starts working on poem Heer. Village youngsters get attracted to his work and become his fan. Qazi (Gurkirtan) of the village becomes furious after seeing Waris???s popularity. Waris is arrested by area Subedar after complaints from Qazi. Waris convinces Subedar that by singing he is worshiping the God. Bhaagpari is forced to merry Saabos brother (Sushant Singh) as they were betrothed at a young age. Waris Shah realizes that in order to feel pain and complete Heer, he must let Bhaagpari go. On the other hand Saabo tries her best but fails to get Waris. Finally she accepts her fate and lets Waris go. Waris and Bhaagpari are accused of having sexual relationship without marriage. They prove their innocence by walking unharmed on burning coals. In the end Waris leaves the village upon the completion of Heer.