Aditya Kashyap (Shahid Kapoor), the son of a recently deceased reputed industrialist, demoralized by his mother's affair and subsequent departure, becomes even more depressed after attending the marriage of his girlfriend. Feeling ashamed, he walks out of the wedding, boards a train at night, and appears on the verge of committing suicide. While on board, he meets Geet Dhillon (Kareena Kapoor), a lively and talkative young woman who is leaving Mumbai to go to her hometown, Bhatinda, Punjab.
Initially, Aditya finds Geet very annoying. She discloses her plans of eloping with her boyfriend Anshuman (Tarun Arora), as she fears resentment from her parents. Geet annoys Aditya to the point where he leaves the train. In trying to get him back on board, she ends up missing it and finds herself stranded on a desolate station, Badnagar, with no luggage or money. She confronts Aditya and tells him that he is now responsible for getting her safely to her house in Punjab. They begin an idyllic journey through the exuberant north Indian heartland, travelling in buses, taxis and camel-carts to reach her house. Through spending so much time with Geet, Aditya begins to feel good about life again.
On arrival, Geet's family (Pawan Malhotra, Dara Singh and Kiran Juneja) mistakes the two for lovers, but the pair quickly assures them that there is nothing of the sort. Aditya tells her family he is a musician to avoid being recognized as the famous industrialist, and her family accepts this. A few days later, Manjeet, an old childhood friend of Geet's who wants to marry her, arrives as her suitor. Geet, however, does not want to marry him. While he is there, Geet leads him to believe that there is something intimate going on between her and Aditya. Later that night, Geet runs away from her home, with Aditya, to marry Anshuman in Manali. However, Geet's sister sees them running away and informs the entire family. The two hurriedly make their escape, but this confirms the suspicion in Geet's family that they are lovers. The two escape to Manali and then part to continue on their separate ways.
Upon returning to Mumbai with a new conviction and positive outlook on life because of Geet's influence, Aditya guides his company to extreme success. Around nine months later, he launches a new product, a calling card named "Geet", as he has fallen in love with her. Geet’s family sees this launch on TV and runs to Mumbai to meet Aditya. Aditya is shocked to learn that Geet has not returned home. He takes it upon himself to find her and return her to her family. He returns to Manali, where he expects her to be with her new husband. Instead, he finds that Anshuman had turned her out and refused to marry her.
After chastising Anshuman for what he did, Aditya leaves and finally tracks Geet down in Shimla, shocked to see what she has become: a quiet, reserved, and miserable schoolteacher. Convincing her to face her circumstances, he manages to bring her back to normal life, and things start to look up for her again. However, Anshuman arrives and tries to patch up with her, claiming he realized he was a jerk. Initially, Geet does not want to accept him, but Aditya pushes her to be with him, even though he loves her. All three travel back to Bhatinda to unite Geet with her family and to announce that Geet and Anshuman are together. Upon their arrival, the family again assumes that Geet and Aditya are together and, in all the confusion, there is no chance to right the family's misconceptions. While trying to clear the confusion, Geet realizes that she is in love with Aditya, not Anshuman. She confesses her love to Aditya, and the couple gets married. Finally, it is seen they have two daughters.