The film begins with a train accident whose significance the audience will learn further on.
A young Bengali girl called Ashima (Tabu) trained in classical singing has her marriage arranged to a Bengali man called Ashoke Ganguli (Irrfan Khan) who has settled in New York. After moving to the US and leaving behind her family and the life as she knows it, the two of them try to adjust to the way of life in New York and to assimilate the cultural differences. The food, the cold weather, a crammed flat in the middle of a big city where Ashima can't meet her neighbors, the language... everything is difficult for her. Ashoke is studying and working many hours, and that's difficult for her as well, for Ashima feels lonely many times. He has got intellectual and professional ambitions, and adapts better than her.
In time, the couple grow to love one another though it is hard for them to express their feelings, having been brought up to hide emotions between a man and woman. In time, Ashima gives birth to a baby boy, and the father who is studying for a PhD, names the boy Gogol in honor of the Russian author by the same name with whom he has a special affinity. But according to Bengali custom the child is given the "good name" of Nikil which is soon shortened to Nicky by his American acquaintances. In time another child is born, a girl named Sonia. Later, the audience will know the significance for Ashoke of that name.
Sonia (Shahira Nair as a teenager) will become a rebellious teenager herself. The traditions of her culture doesn't offer her much place for fulfillment or professional ambitions. She feels like a fish out of water during family reunions especially with her grandparents, (Ruma Guha Thakurta, Tanushree Shankar, Sabyasachi Chakraborty and Tamal Ray Chowdhury) who disregard her and ask her when she is going to settle down, marry and have children. She doesn't feel the need to do none, and the boyfriends she has will be met on her own terms. She moves down to California to lead an independent life.
Gogol (Kal Penn) grows up as a typical American teenager and, inspired by a family trip to the Taj Mahal in India, studies to become an architect. He finds love with Maxine Ratliff (Jacinda Barrett), an all-American blonde girl from a wealthy family. He feels soon a part of her family, which goes hand in hand with his distancing from his own family.
His father has to travel to teach at a university in Ohio for six months. While there, Ashoke feels a bit of a stomachache. Unexpectedly he dies from a heart attack. Gogol is forced to confront his fears about his cultural identity and rejects Maxine's attempts to support him through his intense grief, which ultimately ends their relationship. She tries to understand him, but he won't let her.
Gogol remembers the story his father told him: he came out alive of that train accident and it was a miracle he did so. The person in front of him was Gosh (Jagannath Guha). Ashoke is reading a book by the Russian classical author Nikolai Gogol and doesn't want to be bothered by Gosh, who points to the beautiful scenery. Gosh dies, as should have Ashoke, who is found by a rescue team.
Gogol meets an old childhood acquaintance, Moushumi Mazundar (Zuleikha Robinson), a second generation Bengali like himself, who has embraced the western way of life as keenly as he has. Their parents had hoped on their marriage, but neither of them was interested at that moment. She had other secret plans, and he found her ugly, meek, and too obedient of her family's wishes. Now she's become a businesswoman and has seen the world on her own. Without her glasses, with a modern hairstyle and western clothes, she looks sexy. She is good fun and ambitious.
They get married. Making love is very intense, especially for him. However, she likes to socialize much more than him, and he doesn't quite fit with her flamboyant intelligentsia-like friends. The last drop is Moushumi's affair with a French ex-boyfriend of hers. Gogol finally learns to make peace with his culture and his circumstances. He and Moushumi acknowledge that no one is perfect and to depart from each other.
Gogol wants to be alone in the USA for a while. On the opposite, her mother Ashima has decided to return to India and she will probably never come back to the USA, a country which she has probably never understood or felt part of As usual, Gogol refuses his mother's help. She offers to call off a trip to India she's already bought the tickets for, but he tells her to go. He tells her that he's never felt free like this before.