Le roman débute avec la description de la remise en état du jardin de la demeure d’Édouard et de Charlotte qui viennent récemment de se marier. Ils sont tous les deux issus d’un premier mariage avantageux pour leur famille. La première femme d’Édouard est morte avant l’époux de Charlotte. Charlotte lui avait donc présenté sa nièce Odile, même si elle avait encore des sentiments pour lui. Ils ont fini par se marier, s’aimant déjà avant leurs mariages.
Charlotte a eu une première fille de son premier mariage et l’a envoyée dans un établissement prestigieux pour lui permettre de faire des études et profiter de son mariage d’amour avec Édouard. Ce dernier, compatissant pour son ami Le Capitaine, en détresse financière, demande à Charlotte de l’accueillir et de lui donner une situation dans leur grande demeure. Charlotte se montre réticente, de peur que leur vie de couple ne soit bousculée. Finalement, elle arrive à y voir un avantage : parce qu’elle tolèrera la présence du Capitaine, Édouard pourra accepter la présence de sa nièce Odile, à laquelle elle ne peut pas payer une bonne éducation.
Édouard accepte en interrogeant des tiers personnes fin de s’assurer de ne pas risquer leur bonheur. Finalement, tous deux prennent la décision de recevoir le Capitaine. Ils passent de nombreuses soirées ensembles, à faire de la lecture, jouer des partitions de musique en s’accompagnant mutuellement, à se promener dans le jardin, à parler de diverses sujets. Ils en arrivent un soir à parler des »affinités électives ». Charlotte insiste pour qu’on lui en explique la signification. Le Capitaine part d’abord sur des exemples chimiques entre des corps qui réagissent entre eux donnant des substrats et des produits mais Charlotte insiste pour qu’on lui explique le sens de cette expression en application sur les relations humaines. Édouard voit très clairement là où Charlotte veut en venir en associant les deux êtres anciennement liés (Édouard et Charlotte) au substrat (Édouard et Odile / Charlotte et le Capitaine). Charlotte se sent dès à présent menacée, car Édouard s’est déjà éloigné d’elle en allant habiter dans l’aile droite du château avec le Capitaine. Édouard insiste finalement pour garder Odile au château.
Odile se montre très utile dans la demeure en organisant les repas, les rangements, en permettant à tout le monde d’être à table en même temps et de jouir de sa compagnie discrète. Petit à petit, Édouard développe une certaine inclination pour elle, la laisse lire par-dessus son épaule alors qu’il l’avait défendu à Charlotte. Il passe de plus en plus de temps avec elle. Il lui avoue enfin son amour et se rend compte qu’Odile est également prise de passion pour lui. Ils échangent la promesse de s’aimer, une fois le divorce d’Édouard et de Charlotte prononcé.
De son côté, Charlotte a de plus en plus apprécié la compagnie du Capitaine et a dressé des plans du domaine avec elle. Le Capitaine a ressenti que leur relation était sur le point de prendre un autre tour et a décidé d’éviter Charlotte et de ne se trouver avec elle seulement entouré d’autres personnes. Un jour alors qu’Édouard et Charlotte avaient prévu de faire un tour de barque sur le lac nouvellement aménagé, Édouard partit au plus vite pour rejoindre Odile dans la demeure. Charlotte et le Capitaine sont restés sur la barque jusqu’à rester bloqués. Le Capitaine a pris Charlotte dans ses bras pour la ramener sur la rive et ils ont échangé un baiser à ce moment-là. Le Capitaine en a eu des remords et Charlotte a rapidement compris que leur amour serait impossible.
Lors d’une visite d’un Comte et de son amante la Baronne, l’idée d’un nouveau poste, plus haut placé pour le Capitaine a émergé. Charlotte en a été très triste mais s’est résolue à accepter le changement de sa situation. Au contraire, Édouard a continué de ne vivre réciproquement que pour Odile. Il a décidé de lui organiser le plus grand des anniversaires et y a convié tous les villageois. Il avait même prévu un feu d’artifice rien que pour elle. Le soir venu, le nombre de personnes sur le talus au bord du lac était trop important pour la construction ne résiste. Nombre d’eux ont chaviré dans l’eau. Ils ont ensuite regagné la rive par eux-mêmes, excepté un jeune garçon qui se noyait. Le Capitaine se déshabilla et alla le sauver. Charlotte en fut toute émoustillée. Le lendemain matin, le Capitaine partit avant que les hôtes ne soient levés.
Charlotte a ensuite entretenu une discussion avec Édouard afin de mettre en place la suite de la vie au château. Elle a de suite proposé le départ d’Odile, ayant déjà depuis longtemps pris conscience de l’inclination mutuelle d’Édouard et d’Odile. Édouard s’était également aperçu du rapprochement entre le Capitaine et Charlotte. Édouard s’est montré très opposé au départ d’Odile prétextant le dépaysement trop brutal de l’enfant dans une nouvelle demeure dont elle ne connaîtrait pas le fonctionnement. Charlotte en vint rapidement à la réalité de la situation et évoqua leurs sentiments. Édouard, qui ne pouvait se résoudre à voir Odile quitter sa demeure décida de lui-même s’en aller pour résister à la tentation sans ne plus donner de nouvelle à sa femme. Finalement Odile resta à la demeure avec Charlotte jusqu’à l’accouchement de cette dernière. Charlotte accoucha d’un fils, qu’elle nomma Othon, et dont les traits ressemblaient fortement à ceux du Capitaine. D’un autre côté, les yeux de l’enfant le faisait radicalement ressembler à Odile.
Odile s’est très vite occupée du nouveau-né, Othon, comme s’il s’agissait de son enfant. Charlotte a pris également soin d’Odile. Odile s’est liée d’amitié avec un jeune architecte qui avait pris part à la rénovation et s’était décidé à rénover la chapelle à côté du cimetière. Odile l’a beaucoup aidé dans la rénovation de la peinture de la chapelle.
Entre-temps, Édouard, ne tenant plus à sa vie loin de la femme qu’il aime s’est engagé pour l’armée et est parti en expédition dans le désir de mourir. Charlotte l’a appris par le journal local vantant les mérites d’Édouard, mais n’en a rien dit à Odile. Odile est devenue de plus en plus mature loin d’Édouard et a compris que leur liaison serait à jamais impossible, s’en est fait une raison. Elle est devenue sage et n’a plus aspiré à le revoir. Malgré cela, Édouard, ayant compris qu’il ne serait jamais heureux sans elle est revenue dans le village où se trouve sa demeure et a demandé au Capitaine, nouvellement Commandant et à Mittler de lui venir en aide pour lui permettre de retrouver Odile et de s’assurer que Charlotte ira bien vivre avec le Commandant sans ne s’opposer ni au divorce ni au nouveau mariage.
Impatient d’avoir des retours du Commandant et de Mittler. Édouard s’est aventuré du côté du château et de son immense jardin. Il y est allé dans l’espoir d’observer Odile, mais il ne s’attendait pas à la retrouver au bord du lac aménagé avec son fils. Odile était alors totalement rêveuse lorsqu’Édouard se manifesta. Il reconnut enfin le regard d’Odile lorsque l’enfant ouvrit ses yeux. Odile et Édouard s’échangèrent des mots d’amour et des promesses. Entre-temps, le soleil s’était baissé et Odile devait ramener au plus vite Othon à sa mère pour ne pas qu’elle s’inquiète. Elle prit alors la barque sur le lac pour ne pas avoir à le contourner. Mais la barque chavira et malgré tous les efforts d’Odile pour sauver Othon, une fois ramené sur la berge, l’enfant était mort.
Charlotte entra dans le séjour voyant Odile gisant au sol. Elle s’inquiéta d’abord pour elle avant d’apprendre que son enfant, qu’elle chérissait plus que tout, était mort. Elle ne blâma pas Odile, même si celle-ci lui avait révélé avoir eu une entrevue troublante avec son propre mari avant d’avoir tué son enfant. Charlotte, considéra ls évènements funestes tels qu’ils étaient : avec beaucoup de calme et de recul. (C’est vraiment un modèle de retenu et de bienséance, d’ataraxie). Odile se fit le vœu de ne jamais plus revoir Édouard et ne plus jamais chercher l’amour. Elle fut malheureuse longtemps avant de regagner foi en la vie progressivement. Elle désirait aller en couvent ou retourner dans son ancienne pension pour y devenir professeure.
Alors que son départ s’avançait pour la pension et que ses valises étaient en préparation, Édouard, jusqu’alors banni de sa demeure afin de préserver la santé d’Odile, fit son apparition dans sa chambre avec une lettre d’amour. Il voulait qu’elle succombe une fois pour toute à se laisser vivre et à se laisser aimer par lui.
Charlotte était totalement ouverte au nouveau mariage de son mari avec sa nièce, pourvu qu’ils soient heureux (cette femme est un exemple). Elle ne s’opposait pas non plus à un mariage avec le Commandant. Odile refusa la proposition d’Édouard et tout le monde était disposé à respecter cette décision.
Cependant, alors qu’Odile était en train de s’amuser avec les parures qu’Édouard lui avait offertes le jour de son anniversaire dans le coffre, Nanette, la fidèle servante, parla de mariage de manière légère à Odile. Celle-ci, encore fragile, dépérit. On amena Édouard à son chevet et elle le pria de rester en vie et d’essayer d’être heureux sans elle. Nanette s’en voulu à mourir de ses paroles déplacées et quitta le château précipitamment. Ses parents l’enfermèrent chez eux, de peur qu’elle ne s’enfuit plus loin. Le jour de l’enterrement, Nanette aperçut la profession autour du cercueil et réussit à s’enfuir en sautant du grenier. Elle se brisa les os des jambes mais parvint jusqu’au tombeau d’Odile et toucha sa jambe. Elle relata alors de l’apparition de la défunte à ses yeux et se rétablit directement de ses blessures. Elle se sentit alors pardonnée pour sa faute. L’architecte vint également prier pour Odile dans l’église dans laquelle elle réside.
Malgré la promesse qu’Édouard avait faite à Odile, il ne parvint pas à être heureux et mangea de moins en moins, ne sortit plus de sa chambre. Il ne but presque plus au moment au l’un de ses serviteurs cassa le verre de champagne où les initiales d’Odile figuraient. Il mourut bientôt de déshydratation et de famine.