An Indian Air Force pilot rescues a Pakistani girl stranded in India. Years later, a lawyer seeks to unravel the truth behind the pilot's mysterious imprisonment in Pakistan for over two decades, during which he remained silent.
Squadron Leader Veer Pratap Singh (Shah Rukh Khan) is a rescue pilot with the Indian Air Force. In the line of duty he comes across a stranded Zaara (Preity Zinta), a girl from Pakistan who has come to India to fulfill her surrogate mother's dying wish. Veer saves her life, and he is never the same again. 22 years later Saamia Siddiqui (Rani Mukerji), a Pakistani human-rights lawyer on her first case, finds herself face-to-face with an aging Veer Pratap Singh. He has languished in a Pakistan jail cell for 22 years and has not spoken to anyone for all these years, and no one knows why. Her mission is to discover the truth about Veer and see to it that justice is served. "VEER-ZAARA" is a saga of love, separation, courage, and sacrifice. A love that is divine, a love that is whole-hearted, a love that is completely consuming, a love that grows with separation and deepens with sacrifice. A love that is an inspiration--and will remain a legend forever.—Official Source
The government of Pakistan decides to review unsolved cases pertaining to their Indian prisoners as a gesture of goodwill. Saamiya Siddiqui (Rani Mukerji), a budding Pakistani lawyer, is given the defense of prisoner 786 as her first case. Jailor (Akhilendra Mishra) harasses Saamiya whenever she visits prison, but she is determined to do justice to her first case.The prisoner, documented under the name Rajesh Rathore, has not spoken for twenty-two years. However, when Saamiya addresses him by his real name, Veer Pratap Singh, he breaks his silence and opens up to her about his story.
22 years earlier, Zaara Haayat Khan (Preity Zinta), is an independent, carefree, and sprightly young Pakistani girl travelling to India. Zara's family (father Jehangir Hayaat Khan (Boman Irani) & mother Mariyam Hayaat Khan (Kirron Kher) has a political background and is of high standing in Lahore. Her engagement is arranged with Raza Shirazi (Manoj Bajpayee), a wealthy and influential lawyer.
She is on her way to India with the ashes of her Sikh governess Zahida Bebe (a Punjabi word to denote mother or grandmother, but here used for Zaara's old governess). Before dying, Bebe (Zohra Sehgal) begs Zaara to fulfill her final wish - to take her ashes to India, to the holy Sikh city of Kiratpur, and scatter them in the Sutlej River, among her ancestors. Zaara decides to carry out Bebe's dying wish without telling her family.
Upon reaching India, Zaara's bus meets with an accident causing it to overturn and hang off a mountain side. An Indian Air Force pilot, Squadron Leader Veer Pratap Singh (Shahrukh Khan) comes to her rescue. Veer flies a rescue helicopter, and he undertakes a daring operation to save Zaara from the falling bus. When her bag of ashes falls, Zaara insists that Veer help her retrieve it. Veer complies, but later admonishes Zaara at the base for endangering everyone's lives. Zaara reveals the contents of the bag, which humbles Veer. With his help, Zaara completes Bebe's final rites as per her instructions.Veer's own father was an army man who was martyred in the service of the nation.
Zaara wants to thank Veer for his help and wants him to ask for a gift.Veer convinces Zaara to return with him to his village to spend one day together. Zaara agrees and Veer takes her on a tour of India's Punjab. They visit Veer's home village on the day of the Lohri festival and meet Veer's foster parents (father Choudhary Sumer Singh (Amitabh Bachchan) and Mother Saraswati Kaur (Hema Malini)). The family is captivated with Zaara and welcomes her with open arms. Sumer and Saraswati had built the village with their own hands. They got electricity to the village, got funds for a hospital, and then a school. Sumer and Saraswati were the first teachers at the school as nobody was as educated. Zaara encourages Sumer to complete education of girls in the village. That night, at Lohri, Sumer announces that he will build a high school for girls in the village.Sumer tells Veer that, in a dream he has seen Zaara becoming Veer's wife, Veer realizes he is falling in love with Zaara.
Taking her to catch her train to Lahore, Veer is just waiting for the right time to tell Zaara about his feelings, but before he can do that, they are met by Zaara's fiance, who has come looking for her, Raza. Just before she is to board the train, Veer confesses his love and then watches sadly as Zaara boards the train that will take her back to Pakistan. Veer gets no sense of Zaara's feelings, but as she is leaving, he discovers he still has one of her silver anklets. She nods for him to keep it; both believe that this is the end of the road for their relationship and that they will probably never meet again.
On reaching Pakistan, Zaara realizes that she is having deep feelings of love for Veer, but that it is her duty to keep her family's honor and marry her fiance, a wedding that will further her father's political career. But Zaara starts to see Veer's face everywhere and finally tells her mother that she has fallen in love with Veer. Zaara's maid and friend Shabina "Shabbo" Ibrahim (Divya Dutta) calls Veer and tells him how miserable Zaara is without him, she dares him to come and take Zaara away.
Veer who had told Zaara that he would give up his life for her, quits the Indian Air Force and goes to Pakistan to bring her back with him to India. Zaara's mother, Mariam Hayaat Khan, however, begs him to leave Zaara as Zaara's father, Jahangir Hayaat Khan is a high-profile politician whose reputation, and health, will be ruined if news gets out that his daughter is in love with an Indian. Veer respects this request and decides to leave for India but Raza, who is outraged by the shame Zaara has brought upon him, frames Veer and has him wrongly imprisoned on charges of being an Indian spy.
The story moves forward by 22 years and Veer now meets Saamiya Siddiqui (Rani Mukerji), who is an idealistic Pakistani lawyer, whose mission in life is to pave the path for women's empowerment in Pakistan. The Pakistani government has decided to review the cases of some Indians but stacking the deck against Siddiqui winning her first case, she has been given the case of prisoner 786 (Veer). Many view it as an impossible task as the man has been languishing in prison and has not spoken to anyone for the last 22 years. Also, the prosecution is led by Zakir Ahmed (Anupam Kher), her ex-boss who has never lost a case.
Veer opens up to Saamiya and tells her that she can fight his case but cannot mention, much less subpoena, Zaara's family. The number 786 is considered by some Muslims to be a holy number in Islam; this convinces Saamiya that God has chosen Veer for some special purpose, and she becomes even more determined to exonerate him, restore his name and identity, and return him to his country.
After the prosecution presents it case, Saamiya realizes she must cross the border and find someone in Veer's village who can prove Veer's true identity. She is shocked to find Zaara and Shabbo at his home.Shabbo explains that after Zaara thought Veer died, she broke off the marriage with Raza with her father's support. Her parents and Veer's aunt and uncle all eventually passed away within a few years. With the Hayat Khan family basically perished, Zaara and Shabbo left Pakistan and settled in Veer's village in India to fulfill Veer's dream of developing their village further.
Zaara had taken over running the girl's school after the deaths of Veer's parents. She has thought that Veer died on his bus that ran off a cliff, killing everyone on its way to India. Saamiya takes Zaara back to Pakistan to tell the court the truth about Veer's identity. The judge (S. M. Zaheer) releases Veer from prison and apologizes on behalf of Pakistan. After Veer is finally released, he and Zaara bid goodbye to Saamiya and Pakistan at the Wagah border crossing, returning to their village together