Le vendredi , Babette Boutiti (Annie Cordy), chasseuse de papillons, tante suisse de Prudence Beresford (Catherine Frot) prend le train pour rendre visite à sa nièce et Bélisaire (André Dussollier), le mari de celle-ci. Un couple qui se cherche: Prudence se plaint à Bélisaire de l'ennui de son existence.
La nuit est tombée, Babette somnole seule dans son compartiment. Elle se réveille alors qu'un train sur la voie contiguë dépasse lentement le sien. Par la fenêtre, elle entrevoit dans un compartiment, une femme portant des gants rouges se faire étrangler par un homme. Elle sort dans le couloir et raconte ce qu'elle a vu au contrôleur, très sceptique, pour qui elle a afabulé à partir du roman qu’alle a à la main. Arrivée à destination, Babette raconte tout à Prudence, qui la croit et décide d'enquêter, tandis que Bélisaire ne la prend pas au sérieux. Aucun cadavre n'a été retrouvé et aucune disparition n'a été signalée. Babette part pour la Guyane. Bélisaire part pour une réunion de l'amicale du chardon ovale à Glasgow.
Prudence découvre que l'endroit où le cadavre a probablement été jeté du train jouxte une grande propriété : « la Vallée-aux-loups », appartenant à la famille Charpentier. Elle se fait facilement embaucher comme cuisinière chez eux et déclare être veuve. Roderick Charpentier (Claude Rich), radin, pointilleux et acariâtre, vit avec sa fille Emma (Chiara Mastroianni). Ils emploient également un jardinier et Mme Clairin (Valériane de Villeneuve).
Emma dit à Prudence qu'actuellement il y a dans la maison sa nièce Alexie (Alexie Ribes) qui est en vacances et l'amie de celle-ci Valérie. Les frères d'Emma arriveront dans quelques jours pour Noël. Alexie décrit sa famille à Prudence : son oncle Raphaël (Alexandre Lafaurie) banquier, joueur, habitant Lyon ; son oncle Augustin (Christian Vadim) ancien sculpteur, chasseur et homme à femmes ; son père Frédéric (Melvil Poupaud) veuf et guitariste ; et son oncle Edmond mort à la guerre. Prudence part explorer la propriété et rejoint la voie ferrée. En contrebas des rails, elle trouve un gant rouge. Alexie et Valérie l'emmènent dans une dépendance appelée « le musée ». La nuit Prudence retourne dans le musée et découvre dans un sarcophage, le cadavre d'une femme portant un manteau de fourrure et un gant rouge, qui a été étranglée. La police est avertie, l’inspecteur Blache (Yves Afonso) enquête. Il prévient Bélisaire, qui vient sur place et se présente sous le nom de Raquette. Raphaël, Augustin et Frédéric sont arrivés. Emma a une liaison avec le médecin de famille, le docteur Lagarde (Hippolyte Girardot). Raphaël révèle que son père n'est que l'usufruitier de la propriété, les propriétaires sont Emma, lui et ses frères, selon le désir de leur grand-père.
Remarquant les marques sur les pieds du cadavre, Prudence conclut que la morte était une danseuse. Emma envisage que la morte soit Martina, la femme russe d'Edmond qu'il avait épousée juste avant sa mort. Emma n'a donc jamais vu cette Martina. Il y a quelques semaines, Emma a reçu une lettre de sa part, postée de Lyon, dans laquelle Martina l'informe qu'elle a un fils, dont Edmond était le père. Le jour où Martina devait venir les rencontrer, elle a annulé par un télégramme. Bélisaire apprend qu'Anna Karénine, une danseuse polonaise, a disparu fin novembre. Après le repas de Noël, tous ceux qui ont mangé souffrent de maux de ventre. Le docteur Lagarde déclare que c'est vraisemblablement un empoisonnement à l'arsenic. Il fournit un remède à chacun. Mme Valois arrive pour emmener Valérie et Alexie. Elle révèle qu'elle est Martina Petrovna. Augustin meurt, alors que tous les autres se rétablissent. Raphaël rentre chez lui à Lyon, il y retrouve son épouse Diane. Elle lui remet un paquet arrivé par la poste, de la part du docteur Lagarde : la suite du traitement contre l'empoisonnement qu'il a subi. Il l'avale avant de se coucher et a aussitôt du mal à respirer. Il ouvre la fenêtre, va sur le balcon, est pris d'un malaise, bascule par-dessus la balustrade et meurt.
La femme assassinée est en fait "Anna Karénine", l'épouse du Dr Lagarde. Celui-ci l'a assassinée dans le but de se marier avec Emma. C'est également le Dr Lagarde qui a empoisonné Augustin et Raphaël : il voulait qu'Emma et lui touchent la totalité de l'héritage.
Les personnages d'Augustin et Emma Charpentier, frère et sœur dans le film, sont interprétés par Christian Vadim et Chiara Mastroianni, eux-mêmes demi-frère et demi-sœur (en tant qu'enfants de Catherine Deneuve).
↑Le générique de début ne mentionne pas, par erreur, cette relation avec le roman Le Train de 16 h 50, et ne fait que citer le recueil de nouvelles Partners in Crime, dont le titre français de la deuxième partie — Le crime est notre affaire — a donné son nom à ce film.