Naina Talwar (Deepika Padukone) is a shy medical student. She studies constantly and always tops her classes, but she feels like an outcast due to her introverted nature. An encounter with an old classmate, Aditi Mehra (Kalki Koechlin), makes her realize that she wants more from life than high marks. Thus, she makes an impulsive decision to follow Aditi on a hiking trip into the Himalayas, up to Manali without informing her overbearing parents. During the hike, she renews her friendship with other former classmates, Kabir “Bunny” Thapar (Ranbir Kapoor) and Avinash “Avi” Arora (Aditya Roy Kapoor). Bunny is a charmer whose dream is to wander and discover the world, and has no interest of ever settling down. He lives with his supportive father whom he loves very much, and his step-mother.
During the train ride, Bunny meets Lara (Evelyn Sharma). Bunny immediately starts flirting with her, and this flirtation continues throughout the trip. Lara constantly makes fun of Naina for being more serious and less laid back than everyone else on the trek, causing Naina to grow a dislike for Lara.
Throughout the trek, Bunny and Naina slowly grow closer to each other, and Naina begins to enjoy herself. One night, the two climb a mountain and Naina sees a new side of Bunny, causing her to grow feelings for him. Meanwhile, Aditi grows jealous of Preeti (a friend of Lara) as Avi has a romantic interest in her. Bunny and Naina see this and realize that Aditi has feelings for Avi, but they do not bring the matter to surface. At the end of the trip, Naina is close to telling Bunny that she has feelings for him, but is interrupted by Avi who has found a letter accepting Bunny into the graduate school of journalism at Northwestern University in Chicago. Naina realizes that love and marriage have no part in Bunny’s plans and remains silent about her feelings, but is happy for him as he is following his passion.
Eight years have passed, Naina has finished medical school and is now working in a clinic. In the meantime, Bunny works as a videographer for a travel show on FOX network and travels the world as he had always planned. He receives an offer to become a host for a new travel show, which he accepts. However, he receives an invitation from Aditi – in which she explains that she will marry Taran Khanna (Kunaal Roy Kapur) and wants her best friend Bunny to help her celebrate. When he arrives, he learns that during the course of the eight years, Aditi and Naina have become best friends. Bunny re-acquaints himself with Avi, Aditi and Naina and while the girls are happy to see him, Avi isn’t. It is revealed in the argument that Bunny’s father has died and as Bunny was in a remote area, he was not able to attend his last rites.
Naina’s feelings for Bunny begin to grow once more, and Bunny finds himself falling in love with Naina as well. Naina, however, doesn’t want to get her heart broken again. Bunny resists as he is not able to figure out that he is in love with Naina. A day before the wedding, Bunny sees Naina with another man, Vikram, who is the wedding photographer. He is Naina’s friend, but Bunny assumes him to be her boyfriend. He feels jealous and sends him away. Bunny and Naina argue, which leads to them kissing. Both admit they have feelings for one another. However, neither of them is willing to give up a career to follow the other. Naina says she is happy in India, and doesn’t want to leave, whereas Bunny wants to see the world. It seems that their romance is over. Meanwhile, Bunny also confronts Aditi about her crush on Avi. She admits that she had feelings for Avi but says that she has gotten over him and is extremely happy with Taran. On the night of Aditi’s wedding, Bunny leaves for Paris. While sitting at the airport he realizes what he is leaving behind and instead goes to his home where he reconciles with his step mother. On New Year’s Eve, as Naina sits alone at home, she receives a knock on the door, to which it turns out to be Bunny. He surprises her with a kiss, and explains he has turned down his dream job to be with Naina. He then proposes to her, but Naina fears that he might regret his decision in the future. However, Bunny says that he is happy with Naina and wants to continue traveling, but with her. Though she initially disagrees, he argues that somehow they can make a life together and Naina agrees. They have a conference call between Aditi and Avi. Avi is dejected, as he is at his bar which is closing and Aditi is at the airport as a newlywed leaving for her honeymoon to Venice. The friends find out about Bunny and Naina, and are ecstatic. They all wish each other a Happy New Year and the film ends with Bunny and Naina smiling and embracing each other.