The play unfolds in Bulgaria in 1885, towards the end of the Serbo-Bulgarian War. Raina Petkoff and her mother Catherine have received news that Raina’s fiancé Sergius led a victorious cavalry charge against Serbian forces. Louka, the household maid, enters to announce that the windows must be locked, as fleeing Serbian troops are being hunted down in the streets. Later that night a Serbian officer climbs the drainpipe outside Raina’s balcony and breaks into her room. Bulgarian soldiers arrive, asking to inspect the room, and Raina, overwhelmed by a moment of compassion, hides the enemy soldier behind her curtains. Louka is the only one who sees through the deception, but she only smirks and leaves in silence.
Once safe, the soldier comes out from hiding and explains he is a Swiss mercenary for the Serbian army. He admits to Raina that he does not carry cartridges for his gun, only chocolates, as these are more practical for a starving soldier. Thinking him childish, Raina offers the soldier some chocolate creams, which he devours hungrily. He explains that the cavalry charge led by Raina’s fiancé Sergius was only successful as a result of dumb luck. Angered, Raina finally demands he leave, yet the Swiss mercenary claims to be too exhausted to move. Feeling pity, Raina agrees to shelter him and runs to find her mother. When the two women return, the chocolate cream soldier, as Raina calls him, has fallen asleep in her bed.
The second act begins with Nicola, an older servant, lecturing his fiancée Louka on appropriate conduct toward their employers. As they speak, Major Petkoff, Raina’s father, returns from the front. He announces that the war has ended with a peace treaty, upsetting his wife Catherine who believes Bulgaria should have annexed Serbia. Shortly afterward, Raina’s fiancé Sergius arrives. The once idealistic man has grown cynical, resigning from the military and complaining about the lack of honor and bravery among professional soldiers. He recounts an anecdote about a fleeing Swiss mercenary escaping into the bedroom of a fascinated Bulgarian woman, alarming Raina and Catherine. Once alone, Raina and Sergius speak of their love for each other in reverential and somewhat ridiculous tones.
As soon as Raina leaves to get her hat, Sergius embraces Louka and complains about how exhausting his relationship with his fiancée is. Louka claims not to understand the hypocrisy of the upper class, saying that both Sergius and Raina pretend to love each other while flirting with other people. Demanding to know whom Raina has been seeing, Sergius grabs Louka and bruises her arm. Louka asks that he kiss it in apology but Sergius refuses just as Raina enters the garden. As the couple prepares to leave for a walk, Catherine calls Sergius to the library to help Major Petkoff arrange some troop movements.
Catherine and Raina discuss the significance of Sergius telling the anecdote about the escaping mercenary. To her mother’s chagrin, Raina expresses a desire for Sergius to learn of her part in the story, wishing to shock his faux propriety. As Raina exits, Louka enters and announces that a Swiss officer is at the door. Captain Bluntschli, the chocolate cream soldier, has come to return the coat that was used to smuggle him out of the house. As Catherine attempts to send him away, Major Petkoff recognizes him from the peace negotiations, greets him warmly, and asks him to help coordinate Bulgarian troop movements. Raina sees him in the hallway and gasps that it is the chocolate cream soldier. Thinking quickly, she explains to her father and fiancée that she made a chocolate cream decoration in the shape of a soldier, but that Nicola has clumsily crushed it.
Later that afternoon, Captain Bluntschli makes short work of the administrative tasks. Major Petkoff wonders about the fate of his old lost coat. At Catherine’s request, Nicola fetches the coat that had previously disappeared, astounding the Major. The Major, Sergius and Catherine leave to implement Bluntschli’s orders, leaving the Captain alone with Raina. Raina begins posturing, complaining how morally wounded she is by having to lie for him. The Captain sees through her act and confronts her; he is the first person to see her pretentious behavior for what it is. Raina admits to behaving theatrically and suspects Bluntschli must despise her. On the contrary, Bluntschli is charmed by her posturing but cannot take it seriously. Suddenly, Bluntschli receives a telegram informing him of his father’s death and his large inheritance.
Raina and Bluntschli exit as Louka and then Sergius enter. Sergius inspects Louka’s arm and offers to kiss her bruise but is rejected. Louka questions his notions of bravery, arguing that anyone may be brave in battle but few are able to stand up to social expectations. She asks Sergius if he would marry someone below his station for love. Sergius claims he would but uses his engagement to Raina as an excuse. Hurt, Louka teases him with the knowledge that Bluntschli is Raina’s true love.
Sergius challenges Bluntschli to a duel. Raina enters and argues with Sergius, announcing that she saw him embracing Louka. Bluntschli explains to Sergius that Raina only let him remain in her room at gunpoint. Somewhat deflated, Sergius withdraws from the duel. When Bluntschli suggests that Louka join the conversation, Sergius leaves to look for her, only to find her eavesdropping in the hallway. Having understood that something is awry, Major Petkoff enters and demands to know who the chocolate cream soldier is. Bluntschli admits that it is he. Raina explains that she is no longer engaged to Sergius, as he loves Louka. Sergius kisses Louka’s hand, committing himself to marry her. Louka’s original fiancé Nicola gracefully bows out. Bluntschli follows Sergius’ lead and asks for Raina’s hand. The Captain’s new inheritance - a successful chain of hotels - persuades Major Petkoff to agree to the marriage. Bluntschli leaves to take care of his father’s estate with promises to return in a fortnight.