It's the fall of 1991 in Gloucester, Massachusetts and Captain Billy Tyne (GEORGE CLOONEY), the veteran skipper of the fishing boat, the Andrea Gail, has had a recent run of disappointing catches. The boat's owner (MICHAEL IRONSIDE) isn't happy with the lackluster returns, and Billy's crew isn't pleased with their resultant low pay. Fellow captain and friend Linda Greenlaw (MARY ELIZABETH MASTRANTONIO) tries to offer some support to Billy, but it doesn't help.
Determined to make one last run before the end of the season, Billy informs his crew that they'll be heading back out after only a few days of rest. Knowing he needs the money, rookie fisherman Bobby Shatford (MARK WAHLBERG) agrees to go along, but his girlfriend, Christina Cotter (DIANE LANE), who's had bad dreams and feelings about such expeditions, isn't crazy about the idea.
Even so, Billy joins the other crewmembers, Murph (JOHN C. REILLY), who needs the money for child support; Sully (WILLIAM FICHTNER), who can't stand him; Alfred Pierre (ALLEN PAYNE), a Jamaican known as a ladies man; and Bugsy (JOHN HAWKES) who's encouraged that a single mother he tried to pick up at a bar, Irene (RUSTY SCHWIMMER), has arrived to see him off.
With her, Christina and Bobby's mother and local barkeep Ethel Shatford (JANET WRIGHT) waving goodbye, the crew of the Andrea Gail sets off into the waters of the North Atlantic, hoping that their recent run of bad luck will end with this expedition. As they make their way across the Atlantic, however, they're unaware of three storm systems that will eventually collide behind them, forming what local TV weatherman Todd Gross (CHRIS McDONALD) will soon call a "perfect storm."
After what eventually turns out to be a successful run, Billy and his crew decide to head back, but learn from a radio dispatch from Linda that they're headed directly into the storm. Realizing that their haul is too valuable and will spoil if they wait, the crew decides to continue.
As they do, little do they realize that a coastguard team that includes Lt. Barry Ennis (JOSH HOPKINS) and Lt. Kenny Mitchell (DASH MIHOK) has already been summoned to rescue Alexander McAnally III (BOB GUNTON) and his sailboat that carries several people -- including Melissa Brown (KAREN ALLEN) -- and has become stranded in the tumultuous seas. With the weather worsening and the waves only growing larger in size, Billy and his crew must decide whether and how to proceed through the dangerous storm.