Saajan Fernandes (Irrfan Khan) is a widower who is about to retire from his job as an accountant. Ila (Nimrat Kaur) is a young wife seeking her husband’s (Nakul Vaid)’s attention and looking for ways to put romance back into her marriage; one of which is to cook delicious food for him. Through a rare mix-up of the famous “dabbawalas” (a complicated system that picks up and delivers lunches from restaurants or homes to people at work) of Mumbai, the lunchbox Ila prepares for her husband gets delivered, instead, to Saajan. Ila eventually realizes the mistake and with the advice of her neighbor aunty (Bharti Achrekar – voice only) living in the apartment above her, writes a letter to Saajan about the mix up and places it in the lunchbox (along with her husband’s favorite meal) the next day.
An exchange of the messages sent back and forth with the lunches ignites a friendship between the two, as they share memories and events of their own individual lives. At work, Saajan is tasked with training his replacement, Shaikh (Nawazuddin Siddiqui), an orphan whose incompetence initially annoys Saajan, who is already socially distant since his wife’s death. Saajan and Shaikh gradually get to know each other better and strike a close friendship as well. At one point, Saajan saves Shaikh’s job by covering for his blatant mistakes on pay orders and he also becomes his best man at his wedding with Mehrunissa (Shruti Bapna).
At home, Ila finds out that her husband is having an affair and she begins to give up hope on her marriage. In one of the lunchbox letters, she suggests moving to Bhutan where the cost of living is much less than India. Saajan writes back suggesting that the two move there together. Ila then offers to meet in person at a popular food joint, but at the appointed time Saajan doesn’t turn up. Upon receiving an empty lunchbox the next day, Saajan writes back to the dejected Ila and apologizes, saying that he did arrive and saw her from a distance but couldn’t approach her. He explains how young and beautiful she looked, while surmising that he is too old for her and advising her to move on.
Some time later, Ila’s father, battling with lung cancer, dies in her mother’s care. After her mother (Lilette Dubey) confesses how unhappy her marriage was, Ila decides to search for Saajan, but then learns from Shaikh that he has already retired and headed to Nasik. She writes a last farewell message to Saajan announcing that she has decided to leave her husband and move to Bhutan with her young daughter.
Meanwhile, Saajan changes his mind en route to Nasik, returning to Mumbai and going in search of Ila – who is last seen at home waiting for her daughter to return from school – as he gets help from the same dabbawala who regularly picked up and delivered the eponymous lunchbox.