1942, Cherbourg sous l'occupation. Marie se débrouille seule, avec ses deux enfants, pendant que son mari est prisonnier. Elle sort au café le soir avec Rachel pour danser. Elle rêve d'être chanteuse. Un matin, Ginette, sa voisine qui ne veut pas garder l'enfant de son copain partant pour le STO, se fait un bain de moutarde. Marie l'aide à avorter avec une poire à eau qu'elle emplie d'eau savonneuse. Un soir, elle apprend que Rachel, une jeune femme juive, a été emmenée en Allemagne. Alors qu'elle rentre d'une sortie à la campagne pour chercher des pommes de terre, elle a la surprise, peu agréable, de voir son mari de retour. Elle ne lui a jamais écrit durant sa captivité et veut continuer de s'amuser. Elle n'a aucune envie de coucher avec son mari et le lui signifie fermement. Marie continue à se promener seule, et rencontre une prostituée, Lucie, lui avouant par bravade que malgré sa "gueule d'ange", elle est une "faiseuse d'anges". Son mari accède à son souhait de déménager pour plus grand mais c'est dorénavant le bruit des trains qui les importune. Un jour, une amie de Lucie accompagnée de sa sœur lui demande un avortement car elle est enceinte d'un allemand alors que son mari est retenu prisonnier. Avec les 1000 francs de l'avortement, Marie vit plus largement et propose même à Lucie de se prostituer chez elle.
Son mari sait ce qu'elle fait, il dit à son fils que "ce sont des affaires de femmes". Il se met à boire et perd son emploi, ne gardant plus que sa pension d'invalidité. Marie gagne maintenant suffisamment d'argent pour déménager dans un appartement du centre de Cherbourg. Elle rencontre Lucien, un milicien qui devient son amant et elle procure ainsi à son mari un poste de surveillant du port. Elle tente même de le faire coucher avec la bonne, Fernande. Paul accepte tout jusqu'au jour où il n'accepte plus d'être humilié, rabaissé, ignoré. Il finit par dénoncer sa propre femme au commissaire, par une lettre anonyme.
Marie est heureuse : elle prend son premier cours de chant et sa professeure lui promet que sa voix va se fortifier. En rentrant, elle est arrêtée. Le procès a lieu à Paris. La France est occupée par l'Allemagne nazie, et le gouvernement du maréchal Pétain considère l'avortement comme un crime contre la sûreté de l'Etat, il considère que cette pratique est nuisible à l'unité de la France. Fillon, l'avocat de Marie, ne parvient pas à infléchir le procureur, le Colonel Chabert. La peine de mort devient alors la seule sanction possible. Le gouvernement décide de faire un exemple et Marie, reconnue coupable de 23 avortements, est exécutée le 31 Juillet 1943. Off, son fils y exprime sa douleur d'avoir perdu sa mère alors qu'un carton final demande à ce que l'on ait pitié des enfants de ceux que l'on condamne.
Portrait sans concession de la France sous l'occupation, où sont partagées les idées du maréchal Pétain.
Marie, figure réjouissante de la liberté, ignore les conséquences de ses actes. Elle couche avec un milicien, s'interroge pour savoir si les bébés ont une âme lorsque la sœur de Jasmine lui en parle. Elle reproche à son mari de ne pas l'aimer mais ne s'inquiète pas de l'humiliation qu'il subit, ni des souffrances de son petit garçon. Elle se met ainsi en danger ce qui signifie Chabrol par un long plan d'approche de Marie vers la porte de maison de la professeure de chant suivi d'un travelling arrière vers la fenêtre qui la saisit chantant. Son émancipation comme femme libre va se heurter au terrible piège d'une France gangrennée par la honte, l'humiliation et ses velleités dérisoires de morale tranchante.
Le script est adapté du roman de Francis Szpiner, lui-même en grande partie inspiré de l’histoire vraie de Marie-Louise Giraud, condamnée et exécutée pour l'exemple. C'est Claude Chabrol lui-même qui, à la fin, interprète la voix off du petit Pierrot.