Rahul (Shahrukh Khan) is the adopted son of Yashvardhan "Yash" Raichand (Amitabh Bachchan) and his wife Nandini (Jaya Bachchan). Both of them love Rahul more than their biological son, Rohan, who is younger than Rahul by nine years. Yash is a rich and famous business man in India. He believes in keeping traditions, and is against love marriages. When Rahul returns home from his overseas university, he meets Anjali (Kajol) and falls in love with her. Meanwhile, Rohan befriends Pooja, Anjali's younger sister.
Yash decides to arrange Rahul's marriage to his friend's daughter, Naina (Rani Mukerji). Rahul, however, tells his father that he wants to marry Anjali; this angers Yash, who berates Rahul for not considering Anjali's breeding and social status (Anjali is a common girl from a middle class family, as opposed to Naina). Rahul apologizes to Yash and promises to do whatever is asked of him. He goes to tell Anjali that he can't marry her, and finds that her father has died suddenly. After seeing that Anjali and Pooja have no other family and no one to live with, he marries Anjali on the spot. When he brings her home, his father disowns him. Rahul, shocked and hurt, shares an emotional good-bye with his mother; Nandini asks Rohan and Rahul's nanny, Sayeeda (Farida Jalal), to accompany Rahul wherever he goes so that he will always have a mother's love and care. After visiting Rohan, who is at boarding school, one last time he leaves with Anjali, Pooja, and Sayeeda.
Rohan (Hrithik Roshan) is devastated by the split in the family, but has never learned why Rahul left because Rahul had made him promise never to ask. Ten years later, on his way home for the holidays, he stops to meet his maternal and paternal grandmothers and overhears them discussing the split; upon confrontation, they tell him the whole truth. When he goes to his parents' home, he learns from a few acquaintances of Anjali's that Rahul and Anjali have settled down in London. Vowing to himself to bring Rahul and Anjali home, he tells his parents that he wants to go to London to study; Yash reluctantly agrees. As soon as he arrives in London, he tracks Rahul down and learns his address. He enrolls at the university and finds that Pooja (Kareena Kapoor) happens to be a student there. He tells her who he is and asks her to help him bring the family back together.
Meanwhile, Rahul has started his own business and is living comfortably with Pooja, Sayeeda and Anjali and their nine-year-old son, Krish. Pooja tells them that Rohan is her best friend's brother who has come from India and needs a place to stay. Rahul and Anjali warmly welcome him (or rather, grudgingly on Rahul's part), and Rohan soon becomes a part of the family without revealing who he is. He reminds the family how much they miss India and their parents. Eventually, he tells everyone the truth and tries to convince Rahul to go back to India and meet their parents. He even goes so far as to convince Yash and Nandini to come to London with the hope that Yash will reunite with Rahul. This fails, but Rahul and Nandini share a joyful reunion. At this point Anjali, too, attempts to persuade Rahul to go back to India and meet his father. Rahul, convinced that his father doesn't love him and wants nothing to do with him, remains adamant, until they learn that Yash's mother has died, and her last wish was for Rahul, Yash, and Rohan to light her funeral pyre together. Rahul goes back to India, but participates in the funeral without speaking to his father.
Nandini confronts Yash and tells him, for the first time in ten years, that he was wrong in cutting ties with Rahul, whom he had brought into their home with such love and happiness. This leaves Yash stunned, and at odds with himself. Rohan finally manages to convince Rahul to speak to Yash. He takes Rohan, Pooja, and Anjali and goes to meet him, and finds Yash humbled and sad. Yash apologizes to Rahul and berates him for believing that his father did not love him and for not returning home sooner.
Things end happily, with Rohan and Pooja's wedding and a belated celebration of Rahul and Anjali's wedding.