The film opens with Kabir (Abhay Deol) proposing to Natasha (Kalki Koechlin). Their families meet at the engagement party where Natasha learns that Kabir is planning a three-week bachelor road trip to Spain with his school friends Imran (Farhan Akhtar) and Arjun (Hrithik Roshan). Kabir explains that the three have a long-standing pact, and that during the road trip, each of them will have to pick an adventure sport which all three will try together. Initially, Arjun is reluctant to take trip as he does not want to lose his pay for missing work. It is later revealed that Arjun's former girlfriend left him due to his workaholism and his obsession with money. Imran has an additional secret agenda on the trip, to find his biological father Salman Habib (Naseeruddin Shah), an artist in Spain, about whom he learnt soon after the death of his step-father.
They fly to Spain separately and meet in Barcelona. They decide their schedule, where they plan to visit Costa Brava, Seville, and Pamplona. On the way to Costa Brava, Imran and Kabir find it annoying that Arjun works even during the trip. Imran nonchalantly throws Arjun's mobile phone out of their car while he is in the middle of an official call. This leads to a heated argument. Arjun, in a fit of rage, accuses Imran of having an affair, four years prior, with Arjun's previous girlfriend Sonali (a topic which was very sensitive both to Arjun and Imran). After being pacified by Kabir, they eventually resume their journey. Upon reaching their destination, they meet an Anglo Indian named Laila (Katrina Kaif) on a beach. Imran flirts with her and makes Arjun jealous. Kabir reveals that he has chosen deep sea diving as their first sport, and they later find that Laila is their diving instructor. Arjun, who cannot swim and is aquaphobic, receives assistance from Laila. She helps him overcome his fears and finish the sport successfully. Upon a request by Laila, they attend the La Tomatina festival with her in Buñol and meet Nuria (Ariadna Cabrol), who falls in love with Imraan. Meanwhile, Natasha becomes suspicious of Kabir's involvement with Laila when she sees them via webcam and crashes his bachelor party trip, much to Kabir's discomfort in front of his friends. Imran spends time with Nuria, and Arjun with Laila. After the boys leave, Laila realises she has fallen in love with Arjun and chases them on a bike, not wanting to regret their partition if they do not meet in future. She and Arjun express their feelings for each other with a passionate kiss.
On the way to Seville, Kabir drops Natasha at the airport, while Arjun and Imran notice that something is wrong between them. Kabir later reassures his friends that everything is okay. The trio visit Seville for sky diving, Arjun's choice. During the task, Imran is forced to confront his acrophobia and hesitates to take part. However, they complete it without any obstacles. After skydiving, the three men go to a bar and get into a fight with a stranger on whom they had tried to pull a prank. They are jailed after the fight. After Laila and Nuria do not answer their calls to bail them out, Imran reluntantly proceeds to call Salman Habib. Salman bails them out and takes them to his home. While speaking to Imran, Salman reveals that he never wanted the responsibility of a married life with kids, while Imran's mother did, which is why he never contacted Imran. Imran, heartbroken, realises how his actions must have hurt Arjun four years back. He earnestly apologises to Arjun, and Arjun, seeing the genuineness of the apology, forgives him with a hug.
The trio learn of the bull run in Pamplona, which is Imran's choice — baffling Kabir and Arjun. Imran calls up Laila, who comes along, surprising Arjun. When confronted by his friends, Kabir confesses to the other two that he is still not ready for a marriage, and that Natasha had gotten the wrong idea (of him proposing to her) on seeing the ring that he had bought for his mother as a birthday present. On the morning of the bull run, Imran suggests they make a pact to make a promise if they survive the event. Imran vows to publish his poetry (which he has penned down in his private diary), Arjun vows to go to Morocco with Laila, and Kabir promises to tell Natasha that he does not want to marry her. As they complete the event, the friends gain a renewed sense of their relationships with each other, with others they know, and with themselves.
During the credits, Imran, Kabir, Nuria and Natasha are shown attending the wedding of Arjun and Laila in Morocco. Natasha is seen with a new man, and Kabir and Natasha are still friends. Imran's poems are revealed throughout the story after each sporting event showing that he had published them.