Rok 1960. Do małego miasteczka Lasquenet w południowej Francji przybywa Vianne Rocher (Juliette Binoche) wraz z kilkuletnią córką, Anouk. Otwierają one sklep z czekoladą. Dość liberalne poglądy Vianne nie podobają się burmistrzowi miasteczka, Comte de Reynaudowi, który poprzysięga sobie, że zamknie sklep i przepędzi Vianne. Będzie używać do tego najrózniejszych środków - począwszy od narzucenia młodemu księdzu - ojcu Henriemu, by wytykał ,,szatańskie praktyki” Vianne podczas kazań, aż do organizowania grupowego bojkotu, prowadzonego przez energiczną Caroline (Carie-Ann Moss). Jednak jej wewnętrzne ciepło i niesamowite czekoladki przysporzyły jej w miasteczku sporo sojuszników. Wśród nich jest Josephine (Lena Olin), która uciekła od męża i pod opieką Vianne wreszcie odnajduje spokój. Jest też stara Armand (Judi Dench), skłócona z rodziną, która dopiero u Vianne odnajduje radość życia. Jest wreszcie młody Luc, który zamiast przebywać z surową matką Caroline, woli przebywac w towarzystwie nie uznawanej przez Caroline swojej babki, Armand. Naciski burmistrza nie ustają i Vianne ma zamiar poddać się i opuścić miasteczko. Ale sprawy zaczynają się komplikować, gdy do miasteczka przybywa grupa rybaków rzecznych, dowodzonych przez przystojnego Roux (Johnny Depp). Wkrótce między nim, a Vianne zaczyna kiełkować uczucie.