The film begins with Rahul Khanna (Shah Rukh Khan) standing in front of the funeral pyre of his wife Tina (Rani Mukerji). Through a series of flashbacks we are shown Rahul and Tina’s marriage, their honeymoon, Tina’s pregnancy with their daughter and the child’s eventual birth. It is revealed that Tina was aware of complications in her pregnancy, during which only mother or child could be saved, but decided not to tell Rahul as she knew how much he wanted a child. During her pregnancy, Tina, who also loved the baby more than her own life, writes eight letters to her daughter (one for each of her first eight birthdays) and gives them to Rahul’s mother (Farida Jalal). Before dying, Tina asks Rahul to promise her to name their daughter Anjali.
Eight years go by and Rahul is a single parent living with his daughter Anjali Khanna (Sana Saeed) and his mother. His mother worries that Rahul is lonely and that Anjali is missing out on a motherly figure in her life, but Rahul brushes it off saying that having him and his mother is enough. On her eighth birthday, Anjali reads the last and most important letter that her mother left her; it tells the story of Rahul, Tina and Anjali.
A flashback begins from St. Xavier’s College, where Rahul Khanna and his best friend, tomboy Anjali Sharma (Kajol) are popular students. The two are close friends but deny any romantic feelings for each other. The college principal Mr. Malhotra (Anupam Kher) states that his daughter Tina is coming to St. Xavier’s from London to finish her degree, and asks Anjali to be her guide and friend. Tina quickly becomes friends with Anjali and Rahul, and Rahul constantly flirts with Tina, trying to win her over. As time goes by, Anjali realises that she is in love with Rahul, and is encouraged by her motherly guardian Rifat Bi (Himani Shivpuri) to tell him. Before she is able to declare her feelings for him, Rahul instead tells Anjali that he is in love with Tina. Devastated, Anjali decides to leave college and shares a tearful goodbye with Rahul. Although she is in love with Rahul, Tina realises that she came between him and Anjali.
Back in the present, Tina explains in her letter to her daughter Anjali Khanna that Rahul always said that love is friendship, and without friendship there can be no love. Rahul is a single parent and lacks a friend in his life, so Tina gives her daughter the mission of reuniting Rahul with Anjali and bringing back Rahul’s lost love and friend. The next day, Rahul, Anjali Khanna and his mom head to Faridabad where they meet Mr. Malhotra for Tina’s death anniversary, where Anjali shows them, except for Rahul, her mother’s letters..
Anjali Sharma is no longer the tomboy she was in college, she has become a beautiful woman and is now engaged to Aman Mehra (Salman Khan), an NRI living in London. However, she explains to her mother (Reema Lagoo) that she does not really love him and is marrying him as a compromise as she feels she can never love again after losing Rahul. Aman also suspects that she does not really love him. Determined to reunite her father and his best friend, Anjali Khanna and her grandmother search for Anjali Sharma and soon learn that she is going to be working at a summer camp in Shimla. Rahul tells his daughter that she is not allowed to attend the summer camp and heads to a conference, only to find out that his mom and daughter went without telling him, having left a letter for him. They travel to the camp, with a plan to later lure Rahul to come as well, and the two Anjalis meet each other. One night while watching television, Anjali Sharma realizes she has met Rahul’s daughter, and that Tina is dead. Rahul soon arrives at Camp Sunshine, after his daughter fakes a fever, where he and Anjali Sharma are surprised and delighted to see each other again, sharing a sweet reunion. Throughout the days spent at the camp, Rahul and Anjali feel themselves falling in love. Just as they are about to share a heated moment, Anjali thinks about her upcoming engagement and feels guilty. She runs away in tears, after which Aman arrives and tells Rahul that he is Anjali’s fiancé. Rahul is heartbroken but congratulates Anjali. She takes this as him rejecting her again, so she leaves the summer camp and decides to get married to Aman as soon as possible.
After seeing Tina in a dream, Rahul and his family go to Anjali’s wedding, where Rahul silently confesses to Anjali that he loves her, and watches in tears as she is brought forth for the wedding. Realising this, Anjali is hesitant to go on with the marriage, and stands weeping. Aman notices the tears in her eyes and realises that she has always been in love with Rahul. He releases Anjali from the engagement and tells her to marry Rahul. Rahul and Anjali have an emotional hug and as the two marry, little Anjali Khanna sees a vision of Tina, who is smiling and giving her the thumbs up. Rahul and Anjali Sharma get married.