KALANK is the story of lovers not destined to be together. The year is 1945. Satya Chaudhry (Sonakshi Sinha), wife of Dev Chaudhry (Aditya Roy Kapur) is diagnosed with cancer and she is told that she has just a year or maximum two years to live.
Realizing that Dev will be shattered after her demise, she decides to find a second wife for him. Her search takes her to Rajputana, Rajasthan where Roop (Alia Bhatt) resides. The families of Roop and Satya go back a long way. Roop at first rejects Satya's offer but upon knowing her medical condition, she agrees. However, she has a condition â€“ Dev will have to marry her first and only then she'll move into the house of the Chaudhrys. Satya, Dev and Dev's father Balraj (Sanjay Dutt) agree. Dev and Roop get married and the former makes it clear to the latter that this will be a marriage of convenience.
After marriage, Roop moves to Husnabad near Lahore where the Chaudharys reside. At first she feels lonely but then gets curious by the voice of Bahaar Begum (Madhuri Dixit). She decides to learn music under her tutelage. Satya and others at first are aghast on hearing this decision since Bahaar runs a brothel and that too in the infamous part of the city called Heera Mandi. Roop protests and the Chaudharys give in.
Bahaar meanwhile is impressed by Roop and decides to teach her singing. At Heera Mandi, Roop bumps into the flirtatious Zafar (Varun Dhawan). Both get attracted to each other. Zafar is a blacksmith and works for Abdul (Kunal Kemmu) and the latter has a communal mindset. He's also against Dev's newspaper Daily Times that promotes the idea of one nation theory, rejects the notion of Partition and recommends industrialization even at the cost of job loss of blacksmiths. Bahaar senses that Roop is getting attracted to Zafar and she gets horrified. After all, she knows that Zafar has ulterior motives behind romancing Roop and it get can lead to disastrous consequences. What happens next forms the rest of the film.