This evocative romantic drama revolves around Vianne Rocher (Juliette Binoche), an expert chocolatier, who drifts across Europe with her daughter Anouk (Victoire Thivisol), following the north wind. In the beginning of the Lenten season in 1959, "fifteen years after the War," they travel to a quiet French village that closely adheres to tradition, as led by the village mayor, the Comte de Reynaud (Alfred Molina). Just as the villagers begin observing the forty days of Lent, Vianne opens a chocolate shop, much to Reynaud's displeasure.
Vianne wears more colorful clothing than the village women, is an atheist, and has an illegitimate child. She does not fit in well with the townspeople, but is nevertheless optimistic about her business. Her friendly and alluring nature begins to win the villagers over one by one, causing Reynaud to openly speak against her for tempting the people during a time of abstinence and self-denial.
The Comte will not admit that his wife has left him; he is romantically interested in Caroline, but he does not pursue her. One of the first to fall under the spell of Vianne and her confections is Armande (Judi Dench), her elderly, eccentric landlady. Armande is unhappy that her cold, devoutly pious daughter Caroline (Carrie-Anne Moss) will not let Armande see her grandson Luc because Caroline thinks Armande is a "bad mouseclickinfluence". Vianne arranges for Luc and his grandmother to see each other in the chocolaterie, where they develop a close bond.
Caroline later reveals to Vianne that her mother is a diabetic, though Armande continues to eat the chocolate despite her condition. Having lost her husband, Caroline is overly protective of Luc and does not even want her son to play.
Vianne also develops a friendship with a troubled woman, Josephine (Lena Olin), who is a victim of brutal beatings by her abusive husband Serge (Peter Stormare). After a particularly violent blow to the head, Josephine leaves her husband and moves in with Vianne and Anouk. As she begins to work at the chocolate shop and Vianne teaches her her craft, Josephine becomes a self-confident, changed woman.
At the same time, under the instruction of Reynaud, Serge, having seemingly changed into a better man, asks Josephine to come back to him. Finally happy and fulfilled on her own, Josephine declines his request. A drunken Serge breaks into the chocolaterie later that night and attempts to attack both women, before Josephine, in a moment of empowerment, knocks him out with a skillet.
As the rivalry between Vianne and Reynaud intensifies, a band of river gypsies camp out on the outskirts of the village. While most of the town objects to their presence, Vianne embraces them, developing a mutual attraction to the Traveller Roux (Johnny Depp). Together they hold a birthday party for Armande with other village members and gypsies on Roux's boat.
When Caroline sees Luc, who sneaked out to the party, dancing with his grandmother, she begins to see how strict she has been with her son and that his grandmother's influence in his life may after all be beneficial. After the party, Josephine and Anouk fall asleep on a boat, while Roux and Vianne make love. Late that night, Serge sets the boat, where Josephine and Anouk are sleeping, on fire. Both escape unharmed, but Vianne's faith in the village is shaken. Luc helps Armande home from the party; her death soon after devastates both him and his mother. After the fire, Roux packs up and leaves with his group, much to Vianne's sadness.
With the return of the north wind, Vianne decides that she cannot win against Reynaud or the strict traditions of the town. She decides to move elsewhere. Anouk refuses to go and during a scuffle, Vianne's mother's urn falls and shatters. After a moment, Vianne goes into her kitchen to see a group of townspeople, who have come to love her and the way she has changed their lives, making chocolate for the festival Vianne had planned on Easter Sunday. Realizing that she has brought change to the town, she decides to stay.
Despite the shifting sentiment in the town, Reynaud remains staunch in his abstinence from pleasures such as chocolate. On the Saturday evening before Easter, he sees Caroline leave the chocolatier, which devastates him. Convinced now that chocolate will make people stray from their faith, he sneaks into Vianne's house in order to ruin Vianne's preparations for the Easter festival.[citation needed] After accidentally tasting a bit of chocolate that fell on his lips, he finally yields to temptation and devours much of the chocolate in the window display before collapsing into tears and eventually falling asleep.
itThe next day, Vianne awakens the chastened mayor, and a mutual respect between them is established. Both the Easter Sunday sermon and the festival are a success. Roux returns in the summer to be with her, and despite her constant need for change, Vianne resolves to stay, having found a home for herself and her daughter in the village.