The "Cotton Blossom" has just arrived in a small town. It is a show boat, which stops at every city before they wind up the season at New Orleans. As the boat pulls into the dock with a chorus singing and dancing, everybody, blacks and whites alike, stops whatever they are doing and runs to the banks of the river. Captain Andy Hawks (Joe E. Brown) announces that evening's show, and the main performers act out a sneak peek of the play to be performed that night. This time there is trouble, as Pete, the boat engineer, makes a pass at leading actress Julie LaVerne (Ava Gardner). When he is rejected, he threatens Julie and is beaten up by Steve Baker (Robert Sterling), Julie's husband, who is the leading man of the company. Furious, Pete goes to see the local sheriff.
Magnolia Hawks (Kathryn Grayson), the daughter of the captain and his wife Parthy (Agnes Moorehead), wants to be the leading actress as well, but her snobbish, ill-tempered mother won't hear of it. Riverboat gambler Gaylord Ravenal (Howard Keel) gambles away all his money, including the ticket he has bought to go to New Orleans. He goes to the show boat, wanting to talk to the captain. He overhears Magnolia practicing at "acting" and he tells her that she should be the leading lady of the show. Magnolia is over the moon, although she doesn't think that she is ever going to actually make it.
That night, as dancers Ellie and Frank are performing on the stage of the show boat, the sheriff arrives. It is discovered that Julie is half-black and passing as white and is therefore illegally married to Steve, who is white. (Interracial marriage was against the law at that time.) Steve successfully pretends he is also half-black, but if the couple stay on the boat, they would both be classified as black, and in 1880's Mississippi, African-Americans could not perform on the stage; black characters were always performed by whites in blackface makeup. And so, Julie and Steve both have to leave the boat.
Gaylord hears of this, and turns up at the dock just after Julie and Steve have left. Desperate, Captain Hawks gives the job of leading man to Gaylord and makes Magnolia the new leading lady, at least until they reach New Orleans and they can look for replacements. As usual, Parthy does not like the idea, but the dire straits they are in force her to agree. Magnolia and Gaylord soon fall in love. Their performance becomes a smash hit along the river because their emotions are not fake. Parthy insists that they do not kiss onstage, but one night after the show she discovers her daughter and the gambler kissing on the deck. Ravenal announces that he has asked Magnolia to marry him and that she has accepted. Parthy storms off angrily. A concerned Cap'n Andy tells Ravenal that he hopes it won't be Saturday night one minute, and a cold Monday morning the next.
The happy couple is married (offscreen), leaves the boat and moves to Chicago. They stay at the luxurious hotel Sherman, but they have been unable to pay for their room, as Gaylord does not try to get a job and spends all their money on gambling, always losing but hoping on hitting the jackpot on the next occasion. The hotel manager (Edward Keane) gives him until the next day only to pay his dues, or they will have to leave. Magnolia offers her jewels to her husband, but Gaylord refuses to accept them. However, that night, pressed to pay his gambling debts on the spot, he asks for the family jewels, saying that it's only a temporary lending. Magnolia reminds him that many things can be temporary except for their love. Pretty soon they have to sneak out of the hotel, trying to avoid to be seen by the hotel receptionist (John Crawford), leaving a six-week credit hole to their names.
Finally, Gaylord and Magnolia have an argument. She is disillusioned about their life and blames him for being weak, asking him not to touch her. Soon after, out of guilt, he leaves her. At their apartment, where Magnolia has been left stranded, arrives Frank Schulz, (Gower Champion) and his wife Ellie, the dance team who formerly worked on the show boat, who are looking for a room. The Schulzs have an audition at the Trocadero. They talk about their old times at the "Cotton Blossom", and it's then that Magnolia reads a written note from Gaylord saying that he's leaving.
Julie works at the Trocadero but has become an alcoholic because Steve has left her after all their difficulties passing as white. Her boss tries to keep Julie sober. Frank, having no idea that Julie works there, convinces the manager to give Magnolia an opportunity. The manager is not convinced, even after hearing Magnolia audition. Julie has also heard it from backstage, without letting Magnolia know that she has been working there. Julie realizes that Magnolia needs the job, and quits so that the manager will have no choice but to hire Magnolia. She leaves behind a note to the manager, saying that if he does not hire Magnolia, he's crazy.
New Year's Eve: The Schulzs perform and they are a hit. Magnolia performs and she is a miss: depressed over Ravenal's leaving her, she sings as if she had stage fright. However, a drunk member of the audience - Captain Andy Hawks - tells everybody to shut up and inspires Magnolia to have confidence, upon which she begins to sing beautifully. The audience cheers its approval, and Magnolia is a hit eventually. Andy and Magnolia talk. He recommends her to forget Gaylord forever, but she says it's impossible for her, especially when she tells him that she is pregnant. Gaylord doesn't even know; Magnolia did not have the heart to tell him because of his financial difficulties, and then he left her without saying goodbye. In spite of the possibilities of success in New York, Magnolia wants to be back at the boat and she returns with Andy, Frank, and Ellie.
Soon afterwards, Kim Ravenal is born. About five years pass; Kim (Sheila Clark) is even learning how to dance. Cut to Gaylord, always alone, always frustrated with his luck, always in the middle of strangers, always gambling away his happiness. On a packet boat, Julie and Gaylord meet for the first time, after he punches out the drunk who has just slapped her. Julie discovers who he is and tells him off, not realizing that he did not know that Magnolia was pregnant when he left her. Julie then asks Gaylord to promise that he won't tell Magnolia that he had found Julie drunk, working as a saloon girl. Feeling enormous pity for her, he agrees.
Gaylord approaches Kim, unbeknownst to her that he's her father. They start to play Make Believe together. Magnolia appears and she and Ravenal are reconciled. For once, Parthy and Andy are happy, when they see that Gaylord and Magnolia will be happy forever.
From the shore, teary-eyed Julie watches the boat leave, while Magnolia and Gaylord kiss.