As the opening credits roll, the audience hears "The Clouds Will Soon Roll By", a typical Great Depression-era type lyric, while the audience watches a rain storm. The time and place is set as 1934 Chicago.
As the action begins, an alarm clock wakes Arthur Parker (Steve Martin), who rolls over to wake his wife, Joan (Jessica Harper), by trying to interest in some early morning sex, but his shy, practically frigid wife turns him down. Arthur is frustrated by his wife's disinterest in sex. While he dresses for work, he lip-syncs "I'll Never Have to Dream Again" to a female voice (Connee Boswell). The song continues during breakfast with Arthur singing for himself. In addition to Arthur's sexual disappointments, he is further frustrated because his wife will not finance the start of his own business.
Arthur leaves home that morning and threatens never to return. He goes to a bank to borrow enough money to start a sheet music store. With no collateral, the banker (Jay Garner) refuses to loan him any money. During moments when his dreams are shattered, Arthur shuts out reality by escaping into Busby Berkeley-like musical production numbers. In this particular instance, Arthur and the banker lip-synch the lyrics to "Yes, Yes! (My Baby Said Yes)", performed by Sam Browne and the Carlyle Cousins. They are joined by several chorus girls who tap dance and toss large cardboard coins. During the song Arthur is showered with bags of coins and the song develops into a huge production number complete with over-heard camera shots of dancers in kaleidoscopic patterns and the dancers reflected in a highly polished, mirror-like floor. During one sequence, the banker and Arthur are dressed in cut-away suits and dance with a chorus line of girls.
The scene changes to Arthur driving down the road where he picks up a hitch hiker, the Accordion Man (Vernal Bagneris).
Later, while Arthur sells some sheet music to the owner of Barrett's Music Shop, Eileen (Bernadette Peters) enters. Even though she is a shy, rather plain school teacher, Arthur expresses his instant attraction to her by singing "Did You Ever See a Dream Walking?"(performed by Bing Crosby). During the number, Eileen is converted into a lovelier version of herself and performs a tap dance routine. She leaves the store without paying much attention to Arthur.
As she walks down the street, Eileen hears the Accordion Man singing "Rock of Ages" and gives him a contribution, which prompts him to launch into a spirited rendition of "The Old Rugged Cross".
Soon, the hitch hiker devours some food at Jimmy's Diner, an Italian-American food joint. He and Arthur are sitting together in a booth, but Arthur isn't eating. As he gives his meal to the enigmatic bum, the diner walls disappear and Arthur walks out into the rain and dances to a violin solo of "Pennies from Heaven" (the violin soloist is uncredited; the song is sung by Arthur Tracy, who was called The Street Singer). The rain drops become coins raining down as he dances in front of a huge backdrop collage depicting various scenes from the Great Depression.
After the song, Arthur gives the Accordion Man a quarter, leaves the diner and heads for Eileen's farm. He had learned she was a school teacher, so he asked some children where she lived. Although Eileen is frightened at first, she listens as he expresses his infatuation with her.
The scene changes to a bar where a couple of other salesmen are lamenting the depression economics, but Arthur, smiling, claims he's doing great (referring more to his progress with Eileen than his sales). He and the other salesmen perform a vaudeville act-type rendition of "It's the Girl" (performed by the Boswell Sisters with the Dorsey Brothers Orchestra) which includes a tap dance routine and Arthur performing a short banjo solo.
The following scene shows Eileen reading the Brothers Grimm fairy tale "Rapunzel" to her school class. Suddenly, the children are dressed in all white and their desks become small white grand pianos on which they accompany their teacher as she sings "Love Is Good For Anything That Ails You" (performed by Phyllis Robins with Nicholas Orlando's Orchestra). The children also tap dance on top of their pianos. Back to reality, the school's principal scolds them for making so much noise.
Arthur is waiting outside when school is dismissed, to drive Eileen home. During their visit, Arthur makes the mistake of saying, "My wife", but he quickly tries to cover up by claiming his wife was killed in a motorcycle accident. Then, he plays on Eileen's sympathy by asking her to take the pain away.
When he returns home to his wife, Joan gives into one of Arthur's sexual fetishes by putting lipstick on her nipples. Once he entices her to reveal them to him, she cries and asks "Are they as nice as hers?" He lies to her and claims that even though he has been tempted when he is out on the road, he has refrained.
We hear the radio play "Let's Put Out the Lights (and Go to Sleep)" while Arthur talks about wanting to play the sax and have his own dance band.
The next morning, Arthur is happy he's had sex with his wife and she has finally agreed to finance his record shop. While he dresses, Joan sings "It's a Sin to Tell a Lie" (performed by Rudy Vallee and His Connecticut Yankees). During the song, she picks up a pair of scissors to stab him in the back, but it is only an illusion -she is actually still in bed. It is what she would like to do if she had the nerve.
After some time passes, Eileen is fired from her teaching position because she is pregnant. Meanwhile, Arthur has opened his record store but is languishing with few customers. One evening he drives to a bridge where he sees a girl walking towards him. He speaks to her and determines that she is blind. He offers to walk with her (with an implied sexual context) and compliments her beauty.
Later, he goes to Eileen, who informs him she is going to have his baby. She forces him to write down his address so that she'll know where to find him. He promises to do what he can to help. One of the things that attracts him most about Eileen is that she isn't shocked by his sexual suggestions; rather, she seems to relish them. In this instance, he tells her about a man giving an elevator operator $20 to turn his back so he and his date can have sex. When she likes the idea, Arthur is thrilled. She sings "I Want to Be Bad" (performed by Helen Kane, the Boop-Boop-a-Doop girl) as they act out their sexual fantasy in an elevator. In the following scene, the blind girl Arthur had met earlier stumbles over the bum Arthur had picked up earlier in the film. Although the film audience doesn't see the act, the bum rapes and kills the girl.
Later, as Arthur returns from his tryst with Eileen, he happens upon the crime scene and sees the blind girl dead. We see a Camel cigarette package that will later be used as evidence against Arthur. During this sequence, we hear a reprise of "The Clouds Will Soon Roll By" playing in the background. As Arthur leaves the crime scene, he almost runs over the vagrant who committed the crime.
[I could be wrong, but the way I remember it, Arthur does hit the vagrant, killing him and throwing his body into some bushes where presumably it is never found--isaiah53-5].
Back home, Arthur is so shaken by what he has seen that he promises Joan that he will change and will be good in the future.
Eileen wanders into a bar where she orders lemonade, but Tom (Christopher Walken), a stylish pimp, talks her into adding gin to her lemonade. She offers herself to him for $5 and tells him her name is Lulu. Tom and three of his cronies perform a song and dance routine to "Let's Misbehave" (performed by Irving Aaronson and His Commanders). During the number, a couple of elderly whores join Tom and he and Lulu tap dance on top of the bar.
Soon, Arthur realizes his life with Joan is over. The film audience sees Arthur, Joan and Eileen dressed in sailor outfits sing "Life Is Just a Bowl of Cherries" (performed by Walt Harrah, Gene Merlino, Vern Rowe, Robert Tebow and Al Vescovo) into a radio microphone.
One evening as Arthur is leaving his record store he hears Eileen laughing, goes over to her and offers to buy her a cup of coffee. During their conversation, she reveals that she aborted the baby. When he takes her to his record shop, she further reveals that she has become a prostitute and enjoys it. Arthur admits that he should have held on to her, but he was too obsessed with owning a record store. Once they both realize they are still in love with each other, they decide to run away together. Before they go, they smash all the records in the store except for "Pennies from Heaven." Arthur won't allow her to break that one.
The police question Joan and tell her that Arthur closed the store and was seen at a bar with a prostitute. When they tell her that her husband is a suspect in a murder case, she reveals that he traveled to Chicago and back at the time of the murder.
One evening, Eileen and Arthur go to movies to see "Follow the Fleet" (Fred Astaire and Ginger Rogers perform an excerpt of "Lets Face the Music and Dance" from the film). Soon, Arthur mimes Astaire and he and Eileen walk up on the stage in front of the screen and dance like Fred and Ginger. Suddenly, Arthur and Eileen are transformed into a black and white film sequence in which they dance with a chorus of male dancers. At the end of the dance, the males canes become the bars of a jail cell.
When they leave the movie theater, Eileen and Arthur see a newspaper headline about the blind girl being murdered. As Arthur feverishly drives away, he tries to get Eileen to believe he is innocent of the crime. Abruptly, Eileen tells Arthur goodbye. He asks if she is running out on him, to which she replies, "Not fun, is it?"
The next morning, while Arthur is trying to get his car started, the cops arrive. He runs, but they catch him. Even though he pleads his innocence, he is convicted. At the gallows, he quotes the verse of "Pennies from Heaven" and then sings the chorus (in this instance, Steve Martin is actually singing).
As Eileen looks out a window, Arthur, still dressed in his prison clothes, comes running back calling her name. She can't understand why he is there: he has just witnessed his execution. He says, "Whoever said you could stop a dream? We couldn't go through all that without a happy ending." That line leads into the finale, which is a huge Busby Berkeley-type production number to "The Glory of Love". The number opens with a stage full of chorus girls who are seated and kicking their legs. Soon, Eileen and Arthur, dressed in new costumes, enter and sing (in this instance, both Bernadette Peters and Steve Martins own voices are heard). Towards the end of the number a rainbow appears in the sky and the camera pans up through the clouds to a fair sky and a full moon.
During the end credits, renditions of "Pennies from Heaven" and "Love Is Good For Anything That Ails You" are heard.