The movie begins with protagonist, Vianne, arriving with her daughter, Anouk, in a small village in France, where she is met with much animosity from the town people. In particular, Mayor Reynaud, a devout Christian, finds Vianne’s presence to be disturbing to the foundations of the town, when she opens up a chocolate shop during the season of Lent. However, Vianne quickly manages to win over the town people as they begin to venture into her shop – this causes much displeasure to Reynaud, who sees this as an active temptation to the people during the holy season.
Vianne quickly befriends Armande, an elderly diabetic, who reveals her despair of being separated from her grandson, Luc, because her daughter, Caroline, thinks she is a bad influence in her life. Vianne manages to arrange for Luc to meet Armande in secret, and the two have a blossoming relationship. Moreover, another young woman, Josephine, seeks refuse with Vianne, after her husband, Serge, abuses her severely. She begins to help Vianne out at the shop and maintains a close friendship with her. As time goes on, she begins to gain a sense of self-worth and confidence within herself. When Serge comes to take her back, she refuses and, when he gets aggressive, she hits him with a skillet.
Around the same time, a Romani group arrives to the town, and here, Vianne meets Roux. They quickly grow a mutual attraction for the other. During the night of Armande’s birthday party, the two end up making love. Moreover, Caroline witnesses the close relationship between Luc and Armande and realizes that he needs his grandmother in his life.
However, angry at Josephine’s rejection, Serge too arrives at the party and sets a fire alight, resulting in Armande’s death. Roux, too, leaves soon after. Vianne is left alone and upset by the changes, and desires to move again. However, the town’s people show their support and love for her and she decides to stay in the town.
Meanwhile, Serge confesses to Reynaud that it was him who started the fire, and Reynaud casts him out of the town. Reynaud also loses faith in his fight against Vianne when he sees Caroline, who was his loyal ally against Vianne, also leave the chocolate shop.
Angry with this, Reynaud goes to the shop to destroy all of Vianne’s work before Easter, but instead ends up tasting the chocolate and giving in to the temptation. Vianne finds him and both begin to finally gain a mutual understanding of the other.
Over the next year, Caroline and Reynaud begin a relationship. Vianne and Roux reunite, when he returns. Josephine runs her own café, named after Armande. The narrator is also revealed to be an adult Anouk.