Writer: Abhishek Varman
Cast: Madhuri Dixit as Bahaar Begum: Zafar’s mother and Balraj’s ex lover
Sonakshi Sinha as Satya Chaudhry: Dev’s first wife and Roop’s friend
Alia Bhatt as Roop Chaudhry: Dev’s second wife and Zafar’s love interest
Varun Dhawan as Zafar Chaudhry: Balraj and Bahaar’s son and Roop’s love interest 
Aditya Roy Kapur as Dev Chaudhry: Balraj’s son and Zafar’s half brother, Satya and Roop’s husband 
Sanjay Dutt as Balraj Chaudhry: Zafar and Dev’s father Satya and Roop’s father-in-law 
Kunal Khemu as Abdul Khan: Zafar’s friend and stabber
Pavail Gulati as Aditya: Roop and Dev’s interviewing journalist (special appearance)
Achint Kaur as Saroj
Pawan Chopra as Dharampal: Roop’s father
Hiten Tejwani as Ahmed
Kiara Advani in a cameo appearance as Lajjo: Zafar’s girlfriend 
Kriti Sanon in a special appearance in song “Aira Gaira
Satya Chaudhry is told by her doctor that she has cancer and will die soon. She goes back to her native village in the Rajputana area and requests her childhood acquaintance, Roop, to provide companionship to her husband, Dev Chaudhry who runs a liberal newspaper. Roop agrees on the condition that she will marry Dev to which Satya agrees. Once married, Dev tells Roop that he still loves Satya and that their relationship will only be cordial and platonic. A depressed Roop takes solace in music, which she begins by learning from the madam of a brothel, Bahaar Begum. She also begins working in her husband’s publishing house, to use her education to her advantage. Roop expresses interest in writing about the condition of the locality in which the brothel is located, during which she meets with a womanizing blacksmith named Zafar.
Zafar wants to exact revenge on his parents, Bahaar Begum and Balraj Chaudhry (who abandoned Zafar after ending his extramarital affair with Bahaar) by seducing Roop, as she is married to Balraj’s legitimate son, Dev. Roop misconstrues Zafar’s intentions and falls in love with him. She also begins to develop a friendship with Dev, much to Satya’s pleasure and sadness. Satya dies after urging Dev to give Roop a chance and to forgive Balraj for his affair. In another effort to humiliate Balraj, Zafar instigates communal hatred in his friend, Abdul Khan, by demanding for the partition of India on religious lines, which Balraj and Dev do not support.
When Balraj becomes aware of Roop and Zafar’s affair, he confronts Bahaar and Zafar. Bahaar, who disagrees with Zafar’s approach, warns Roop. Heartbroken, Roop consummates her marriage with Dev but insists that she would never be able to love him. As Abdul’s political stance gains leverage, riots against Hindus and Sikhs in the city take place, during which the Chaudhrys decide to flee to Amritsar with the help of Zafar, but not before Saroj, the benevolent maid is brutally stabbed to death. Zafar confesses to Roop that he eventually fell in love with her, despite his early intention. While boarding a train, Zafar is stabbed in his stomach several times with a dagger by Abdul, as Roop and Dev escape.
Ten years later, Roop and Dev are interviewed about their experience by Aditya, a journalist documenting the partition. The story ends with Roop remembering Zafar and Roop’s inner voice saying that the colour of love and hate is red, but it’s love which often gets stigmatized or blemished.