Naina Catherine Kapur (Preity Zinta) is an angry young woman, for more than one reason. Her father committed suicide when she needed him the most, leaving his wife Jennifer (Jaya Bachchan) to raise their children all alone. The restaurant Jennifer operates is faltering. Furthermore, Naina's paternal grandmother, Lajjo (Sushma Seth), blames Jennifer for the suicide and refuses to accept Gia, a six-year-old girl whom Jennifer adopted, as her granddaughter, blaming her for bringing bad luck to the family. Naina has to put up with the daily fights that take place in the house as a result. The only factors that redeem her life are the toiling and tolerant Jennifer and Naina's bumbling MBA classmate Rohit (Saif Ali Khan)
Aman Mathur (Shahrukh Khan) arrives in Naina's neighbourhood and soon changes everything. Noticing the sadness of his new neighbours, he intervenes. His well-meaning interference in their activities, his revival of their financial condition, and his general optimism soon change their lives for the better. Although Naina is initially reluctant to enjoy Aman's presence as others do and is irritated by his extroverted, overly-enthusiastic attitude, she grows to like him and eventually to love him.
Meanwhile, her friend Rohit has fallen in love with her. On Aman's encouragement, he calls Naina for lunch but before he can propose to her, she reveals her love for Aman. Rohit informs Aman about this and leaves shortly for his parents' home. Naina goes to Aman's house where, to stop her from confessing her feelings to him, Aman tells her that he is married to a woman named Priya.
Aman, it is revealed, is dying of a severe condition that is progressively weakening his heart. Knowing that his lifespan is limited, he goes through life facilitating friendships and courtship, and urging people to enjoy themselves in the present moment since "tomorrow might never come". His excursions into such altruism eventually lead him to sacrifice his love for Naina and instead playing matchmaker between her and Rohit. After a few weeks of courtship, Naina starts to like Rohit as more than just a friend and accepts his proposal of marriage.
The tension within Naina's family also stops when Aman, after intercepting a personal letter addressed to Jennifer, reveals that Gia is Naina's half-sister through their father's extramarital affair. Lajjo finally accepts Gia, and the now-united family wholeheartedly prepare for Rohit and Naina's wedding.
As the film progresses, Aman's health deteriorates. One episode of intense excitement nearly kills him. Naina, in a chance encounter, meets Priya, Aman's supposed wife who is actually his doctor. She then realises that Aman had lied about his being married to hide his true condition, and possibly, the fact that he may love her in return. She goes to see Aman, and although he defiantly refuses to admit his true feelings, she finally understands that he loves her as well. Aman convinces her to get married to Rohit anyway, because he will not be alive for much longer. Shortly after Rohit and Naina marry, Aman eventually dies of his weakness, with Rohit and Naina by his side.