Adapted from the operetta by Otto Harbach and Rudolph Friml, a singer spies on Napoleonic France for Spain while falling in love.
In Spain people cheer their new king Ferdinand. "Firefly" Nina Maria Azara (Jeanette MacDonald) dances. Soldier Etienne (Leonard Penn) is jealous of the Marquis; so she sings "Love Is Like a Firefly" and flirts with Diego (Allan Jones), who sings "A Woman's Kiss." Diego is challenged to a duel. Nina gives Marquis de Melito (Douglass Dumbrille) information on French forces, and he sends her to Bayonne, where Napoleon wants to meet Ferdinand. Diego chases her carriage and sings "The Donkey Serenade." At a Vittoria inn Diego serves Nina dinner and sings "Giannina Mia."
In Bayonne Nina sings "He Who Loves and Runs Away" and flirts with Col. de Rouchemont (Warren William), asking him about the conference. Nina rejects roses from Diego. In the marketplace she is given a message and pigeons. Nina tells Diego the French killed her parents, and she sings "Sympathy" with him. Nina admits that she loves Diego. Napoleon arrives, and Nina learns that de Rouchemont is too busy to see her, but she goes anyway. He must escort Ferdinand into France. Nina sings "When a Maid Comes Knocking at Your Heart." De Rouchemont's dispatches arrive, and she looks at them as he kisses her before he leaves. Nina writes with lemon juice, but her pigeons were switched. Her maid Lola (Belle Mitchell) suggests sending Diego, but Nina suspects him now. The secret service chief tells Diego to fool Nina, who calls on him. Nina asks Diego to take a message to Vittoria. The secret service chief takes it and calls Diego Captain Andre; but the note was personal. Nina is told to leave France, as Andre tells her he fell in love with her.
Joseph Bonaparte is made king of Spain by French order. Spaniards resist and are slaughtered until Wellington leads the opposition to the French. Melito tells Wellington that Nina is behind French lines and won't fail. De Rouchemont sees Nina dancing and summons her. He invites her to Madrid and promises her clothes. De Rouchemont finds her note and calls in Andre. Nina is arrested as a spy, and Andre deciphers the code. De Rouchemont changes his formation and sends a message with Nina's pigeons. Andre visits Nina in jail; she says she wanted to be caught so that de Rouchemont would change his positions. In the barrage Andre is wounded, and Nina sings "Giannina Mia." The Spaniards are liberated, and Melito rescues Nina. She finds Andre, and in the final scene they sing "The Donkey Serenade."
Singing, romance, and a spy story entertain in the historical context of a Napoleonic war in Spain. Honest love and the deception of spying in war-time conflict but seem to be miraculously resolved at the end.