In the summer of 1963, 17-year-old New Yorker Frances "Baby" Houseman (Jennifer Grey) is vacationing with her affluent family at Kellerman's,[3] a resort in the Catskill Mountains. Baby is planning to attend Mount Holyoke College to study economics of underdeveloped countries and then enter the Peace Corps. She was named after Frances Perkins, the first woman in the U.S. Cabinet. Baby's father, Jake (Jerry Orbach), is the personal physician of the resort owner Max Kellerman (Jack Weston).

Baby develops a crush on the resort's dance instructor Johnny Castle (Patrick Swayze), part of the working-class entertainment staff. When Baby, while carrying a watermelon, is invited to one of their secret after-hour parties, she observes for the first time the "dirty dancing" that the staff enjoys. She is intrigued by the sexy dancing, and receives a brief lesson from Johnny. Later, Baby discovers that Johnny's dance partner Penny Johnson (Cynthia Rhodes) is distraught over being pregnant by Robbie Gould (Max Cantor), the womanizing waiter who is dating and cheating on Lisa, Baby's sister. Baby learns that Robbie plans to do nothing about the pregnancy as he says "Some people count, some people don't," so she secures the money from her father to pay for Penny's illegal abortion. Baby's father agrees to give her the money despite her secrecy regarding what it will be used for, because of the trust he holds in his daughter. In her efforts to help, Baby also becomes Penny's fill-in for a performance at the Sheldrake, a nearby resort where Johnny and Penny perform annually. This upcoming show requires Johnny to train Baby to become a better dancer and learn the required routine.

As Baby becomes Johnny's pupil in dance, tempers flare and a romance begins to develop. Their performance at the Sheldrake goes reasonably well, though Baby is too nervous to accomplish the dance's climactic lift. When they return to Kellerman's, they learn that Penny's backstreet abortion was botched, leaving Penny in agonizing pain. Baby brings her father to help, but he assumes that the pregnancy was caused by Johnny, and forbids Baby to have anything to do with him or his friends. He is furious at Baby for lying to him and betraying his trust. Baby, however, defies her father and goes to visit Johnny in his room that very night, where they begin an affair. Their relationship is eventually revealed after Johnny is accused of stealing a wallet from one of the resort guests and is unable to provide a verifiable alibi; to save him from being fired, Baby confesses that he could not have been responsible as she was with him in his cabin that night. Johnny is eventually cleared of the theft charge, but is still fired for having a relationship with a guest. However, Baby's selfless act inspires Johnny to realize that "there are people willing to stand up for other people no matter what it costs them."

In the film's climactic scene, Johnny, even though he has been fired, returns to the resort to perform the final dance of the season with Baby. Criticizing the Housemans for their choice of Baby's seat, he utters the film's most famous line, "Nobody puts Baby in a corner," as he pulls her up from the family's table. Johnny leads Baby onto the stage, interrupting the show that is already in progress. After a brief speech, Johnny and Baby dazzle the audience with a stunning dance performance to the song "(I've Had) The Time of My Life" which ends with Baby completing the lift for the first time. Dr. Houseman learns that the true culprit in Penny's pregnancy was Robbie, not Johnny, and he apologizes (Robbie having accidentally confessed to his deed earlier in the scene, while talking to Dr. Houseman). The film ends as the dance sequence continues and the room is transformed into a nightclub where everyone, staff and patrons, dances together.