London, 1940. At the behest of her French mother, Violette Bushell goes to Hyde Park to find a French soldier and invite him to supper to celebrate Bastille Day. Along with her friend Winnie, she meets Etienne Szabo, a French officer of Hungarian descent. Immediately enchanted by Violette, he accepts her invitation.
Over the next few days, usually chaperoned by Winnie, Violette and Etienne meet. Etienne shocks Violette's father by asking permission to marry her. Despite some reservations, he agrees, and Violette and Etienne enjoy a brief honeymoon where they discuss their future, and the children they may have. Etienne recites a love poem to Violette, before announcing that he must rejoin his regiment.
Two years later, Violette celebrates their daughter Tania's birthday. The celebrations are cut short when Violette receives a telegram announcing Etienne's death.
Hesitantly, Violette accepts an offer to join the Special Operations Executive, a secret unit set up to undertake espionage and sabotage behind enemy lines. She undergoes basic training along with other female recruits and gradually grows in confidence, displaying daring and decisiveness. During this time she strikes up a rapport with SOE officer Tony Fraser.
After damaging her ankle during parachute training, Violette goes home to recover. Her father finds out her secret, to her and her family's relief. Violette confides in Tony that she is concerned about how she might react under pressure. Prior to being sent to Rouen to investigate what has become of the SOE's French Resistance contacts, she is offered a lethal pill, to be swallowed in the event of capture, but she refuses it.
On the way to Rouen, she encounters a German officer on the train. He tries to form a relationship with her, but Violette focuses on her mission, making her contacts during an air raid. She meets the remaining Resistance member at a garage. The man gives her information and she passes on the order to blow up a viaduct, which is being used by German forces. Violette is picked up by two Gestapo officers and taken to the German officer. Even though she is under suspicion, he lets her go, hoping to rearrest her after they have had dinner. However, Violette slips away to Paris, meeting Tony as agreed, but not before doing some shopping. She buys Tania a dress, fulfilling a promise made by Etienne before his death.
Back in England, Violette is reunited with her daughter and family, and enjoys an evening out with Tony. However, she is soon sent back to duty in France with Tony facing a dangerous mission working alongside the French Resistance to prevent German Panzer divisions advancing north. Before she leaves ,she hands over her will to Vera Atkins, who looked after the female SOEs.
In France, Violette joins up with Jacques, the head of the local Maquis, or French Resistance unit, to pass on orders to his colleagues. They encounter a German patrol and, following a skirmish, attempt to escape. Fleeing in the woods, Violette falls and twists her ankle. She urges Jacques to carry on and he manages to escape across a river. Violette bravely holds off the Germans with a sten gun, but is eventually captured.
Her interrogator tries to strike a deal with Violette, offering her freedom in exchange for collusion. Violette remains resolute in her defiance even though she is subjected to torture.
Her two friends from the training camps, Lilian and Denise, join her in her cell, and the three are taken in handcuffs by train to a concentration camp. When the train is attacked from the air they get a chance to escape, but turn back to offer some male prisoners, including Tony, some water. Violette and Tony share some time across a fence in a barn before they are separated again.
Violette and her colleagues are taken out and executed by firing squad at the concentration camp.
At the end of the war, Tania, wearing the Parisian dress, meets Tony and Violette's parents to receive the George Cross from King George VI at Buckingham Palace.