In the early 1990s, retired entertainer Dixie Leonard, [Bette Midler], has a commitment to attend a Hollywood ceremony televised live to honor her and her longtime show-biz partner Eddie Sparks, [James Caan]. When a young man from the TV show arrives to pick her up, Dixie explains what brought Eddie and her together, as well as what drove them apart. The majority of the film unfolds as an extended flashback.
Dixie’s story begins during World War II when she receives an offer to entertain the troops overseas as part of Eddie's act. Dixie is an instant hit with the boys in uniform, but Eddie wants her gone, ostensibly because he finds her kind of humor too coarse, but in reality because she stole the show by topping his jokes. Dixie doesn't care for him much, either, but fellow entertainers and her joke-writer uncle Art persuade her to stay.
Eddie wins her over, particularly by reuniting Dixie with her soldier husband on stage. However, later in the war, Dixie's husband dies in battle.
Despite her distaste for Eddie, Dixie continues working with him back in the States, mostly to support herself and her son Danny Leonard, [Christopher Rydell], who grows up to be a soldier like his father.
As the Korean War breaks out, Eddie announces on stage that he and Dixie will be performing for the U.S. troops there, without having told Dixie of his plans first. In revenge, Dixie announces that Eddie made a $100,000 donation ($1,211,000 today) to the Red Cross. Reluctantly, she travels to Korea with him. On the way to the camp, they encounter a unit of soldiers that has been ambushed. Dixie cares for a wounded soldier but cannot save him: he is pronounced dead on arrival at the field hospital. Dixie and Eddie appear to spend the night together. At the Christmas dinner, a fight ensues after Art announces to everybody that Eddie has fired him for being a communist sympathizer.
In the meantime, Danny Leonard has grown up to be a soldier and is deployed to Vietnam. At Art's suggestion, Dixie eventually agrees to perform there for Christmas with Eddie. On their way to the camp, the performers are warned of the camp possibly being attacked, because of which they are to be flown out immediately after their performance. Before going on stage, Dixie and Eddie meet Danny, who reveals to them the barbarity that is spreading among his comrades. The show begins with a dancer, who starts getting harassed by the soldiers, and only Eddie's intervention prevents the situation from getting out of control. Dixie comes on stage and makes some cynical remarks about the soldiers, then sings In My Life. While she is still on stage, the camp is attacked in a mortar barrage. Dixie and Eddie find shelter, but Danny is killed right in front of them; both mourn deeply for him.
Dixie has not forgiven Eddie for his part in all this, and they have another heated argument in the dressing room. Eddie goes out on stage alone. But, at the last minute, because he speaks of their joint loss in Vietnam, Dixie joins him on stage for one last song and dance, before appearing to accept their mutual love for one another.