Aakash (Aamir Khan) does not believe in love, so he does not keep girlfriends for more than two weeks. Sameer (Saif Ali Khan) is a genial, well-meaning, desperately romantic but confused guy who is prone to romantic infatuations and believes to have found true love whenever he gets attracted to a girl. Siddharth (Akshaye Khanna), or Sid, an artist by profession and the most mature of the three, is not interested in trivial romances and is dedicated to his work.
Akash, who is a cad in his personal life (breaking hearts, proposing to a girl named Shalini (Preity Zinta) in jest) and a mischief-maker in his friends' lives, craftily engineers a breakup between Sameer and his girlfriend. He then plans a vacation trip to the beaches of Goa.
Sameer predictably "falls in love" in Goa with a pretty Swiss girl, a story that ends in disaster. He returns home to find that his parents have arranged a meeting with a potential marriage prospect. He resists at first as he does not want an arranged marriage, but the moment he sees the girl, Pooja (Sonali Kulkarni), he realises that she is 'the one'. Unfortunately, she is already in a relationship with someone else and Sameer has to be content with just being her friend.
Sid, in the meantime, befriends and eventually falls in love with Tara (Dimple Kapadia), an older divorcee and alcoholic, who had moved into a nearby house and shares his love for art. He decides to keep it from her, suppressing all hopes of a relationship as he knows that she, like most other people in society, would consider this scandalous. When his family and friends start finding out, everything goes wrong. Sid's mother is horrified and wrongly accuses Tara of having led Sid on. Akash makes fun of Sid's true intentions and his offensive remarks create a rift in their friendship. Tara hears that Sid has quarrelled with friends and family because of her and feeling that she has ruined his life, refuses to see him.
Akash, on the other hand, is also experiencing romantic upheaval. His parents send him to Sydney, Australia to work for the family business. On the flight, he meets Shalini again. He apologises for his earlier prank and asks her to show him around the new city. Even though Shalini is engaged to marry someone else, she finds herself agreeing and they both, eventually, start to feel a certain "something". She tries to find out how he feels, but he holds back. She then leaves for India to marry Rohit, her fiancé. Akash lets her go, then realizes that he can't live without her and returns to India to win her back. He proposes to her a day before her wedding and she accepts with the blessing of Rohit's parents. Rohit tries to resist but is helpless with his parents' decision and Shalini's true love for Akash.
Meanwhile, Sameer and Pooja start going out after she breaks up with her boyfriend, and Sameer plans on proposing marriage soon.
Tara is hospitalized with liver cirrhosis and dies with Sid at her bedside. Sid and Akash reconcile (with a little help from Sameer) and two years after their first Goa trip, the three friends regroup in Goa where Sid sees a girl (Mandala Tayde) also visiting the same place. They share a smile, implying that Sid is moving on.
Along with the credits of the film you see all six sitting at a table: Akash with Shalini, Sameer with Pooja, and Sid with his partner.