René Gallimard is a member of the French embassy in China. René is mild mannered and considers himself to be poor with women. He meets and falls in love with Chinese opera star Song Liling, a woman whom he considers to be the embodiment of the perfect woman, Madame Butterfly. While René is considered unmanly and unlucky in love he begins a relationship with Song, a relationship which mirrors the relationship between Pinkerton and Butterfly, the submissive woman and the unworthy cruel man.
Throughout their affair, René remains unaware that Song is actually a man playing the part of a woman. Song's performance is so convincing that René remains unaware of Song's true sex despite the two having had intercourse. Through Song's submissiveness, René establishes his masculine identity.
After René returns to France, he tells his wife about Song and the two separate. Song arrives in France dressed as Butterfly and holding a child she claims is the love child of her and René. René is overjoyed and the two continue their affair.
After being together for 20 years, Rene is trialed for treason and imprisoned for passing secret documents to the communist government. In court, Song is publicly revealed to be a man and a spy for the communist government. Unable to accept that Song has actually been lying to him for 20 years Rene commits seppuku (Japanese honor killing).