À Quedlinburg, en Allemagne, en 1919, Anna, une jeune femme allemande (Paula Beer) pleurant la mort de son fiancé, Frantz Hoffmeister, pendant la Première Guerre mondiale, laisse des fleurs sur sa tombe. Elle découvre des fleurs fraîches, déposées par Adrien (Pierre Niney), un jeune Français. Adrien se rend au domicile des parents de Frantz, Hans et Magda Hoffmeister et essaie de parler à Hans. Mais quand Hans apprend qu'Adrien est Français, il le renvoie en lui disant que chaque Français est l’assassin de son fils. Adrien répond à Hans : « Vous avez raison. J'étais aussi soldat et je suis aussi un assassin ».
Pendant ce temps, Anna rejette les avances importunes d'un prétendant plus âgé, M. Kreutz, d'autant plus qu'elle ne peut pas oublier Frantz. Anna voit Adrien sur la tombe de Frantz et lui envoie une invitation à la maison des Hoffmeister. Après avoir dit aux Hoffmeister qu'Adrien déposait des fleurs sur la tombe de Frantz, ils cèdent. Adrien leur rend visite et, interrogé, leur dit que lui et Frantz étaient étudiants ensemble à Paris avant la guerre. Il raconte leur dernier jour ensemble, lorsqu'ils ont visité le Louvre. Anna emmène Adrien dans des endroits où Frantz et elle avaient l'habitude d'aller, y compris le sommet de la montagne où il lui a demandé sa main. Adrien, dont le caractère timide et tourmenté rappelle Frantz, sort Anna et les Hoffmeister de leur désespoir. Les Hoffmeister demandent à Adrien, qui était violoniste mais dont l'ouïe a été endommagée durant la guerre, de jouer pour eux du violon comme le faisait Frantz, en utilisant son instrument.
Anna et Adrien vont se recueillir sur la tombe de Frantz et y déposer des fleurs. Elle lui dit qu’il n'y a rien sous ces fleurs car Frantz a été enterré en France. On ne connaît que la date de sa mort. Adrien demande à Anna d'aller au bal local avec lui et elle accepte. L'apparition d'un Français au bal suscite des réactions négatives de la part des locaux, notamment de Kreutz.
De plus en plus incapable d'entretenir le mensonge, Adrien avoue à Anna qu'il a menti sur le fait qu'il était ami avec Frantz à Paris avant la guerre. En fait, ils se sont rencontrés en tant que soldats ennemis sur le champ de bataille, face à face dans une tranchée où Adrien a tué Frantz. Frantz était un pacifiste et son arme était déchargée. Adrien a trouvé la dernière lettre de Frantz à Anna sur son corps et, rongé par la culpabilité, a décidé de se rendre en Allemagne afin de demander pardon. Anna, le cœur brisé, dit qu'elle le dira aux Hoffmeister pour qu'Adrien n'ait pas à le faire. Finalement, elle décide qu'il vaut mieux qu'ils restent dans l'ignorance du rôle d'Adrien après qu'ils en sont venus à l'aimer et à le voir comme un lien avec leur fils perdu. Adrien retourne à Paris, Anna retombe dans le désespoir et tente de se noyer. Elle ne répond pas au courrier d’Adrien et détruit celui qu'il a joint pour les Hoffmeister dans lequel il avoue son véritable rôle. Après avoir été soignée par les Hoffmeister, Anna retrouve peu à peu ses esprits et décide de recontacter Adrien. Lorsqu'Anna lui envoie une lettre plusieurs mois plus tard, elle lui est retournée sans adresse de réexpédition.
Magda Hoffmeister, qui avait encouragé une idylle entre Anna et Adrien, l'encourage à se rendre à Paris pour le retrouver. Anna finit par retrouver Adrien dans la propriété de sa mère et lui pardonne tandis qu'Adrien dit qu'il ne se pardonnera jamais. Par ailleurs, elle découvre qu'Adrien est sur le point de contracter un mariage arrangé avec une amie d'enfance, Fanny. Anna se rend compte que la romance qu'elle avait imaginée entre Adrien et elle n'était que dans sa tête. Tout ce qu'il voulait d'elle, c'était le pardon. À la gare, elle dit au revoir à Adrien en l'embrassant et s'en va. Elle continue d'écrire aux Hoffmeister comme si Adrien et elle étaient désormais ensemble. En réalité, elle vit sa propre vie à Paris, ayant finalement recommencé à vivre après la mort de Frantz, comme Frantz l'avait écrit dans sa dernière lettre.
Fiche technique
Sauf indication contraire ou complémentaire, les informations mentionnées dans cette section peuvent être confirmées par la base de données d'Unifrance.