Ex-Major Frank McCloud (Humphrey Bogart) arrives at the Hotel Largo in Key Largo, Florida, to visit the family of George Temple, a friend from the Army who had served under him and was killed in the Italian campaign. He meets with George's widow Nora Temple (Lauren Bacall) and his father James (Lionel Barrymore), who owns the hotel. Because the winter vacation season has ended and a major hurricane is approaching, the hotel has only six guests: the dapper Toots (Harry Lewis), the boorish Curly (Thomas Gomez), stone-faced Ralph (William Haade), servant Angel (Dan Seymour), an attractive but aging woman, Gaye Dawn (Claire Trevor) who suffers from alcoholism, and a sixth man who remains secluded in his room. They claim to have come to the Florida Keys for a fishing trip and have a charter boat waiting.
Rebuffing Curly's attempts to engage him in conversation, Frank (as planned) meets with Nora and James Temple. He tells them where George is buried and recounts George's heroism under fire. Nora seems taken with Frank, stating that George frequently mentioned Frank in his letters. Frank reveals to them the intimacy that is the experience of men in combat. They learn that George had told Frank personal and confidential details about the Temples (father and daughter-in-law). And Frank had committed to memory the small and cherished details that George had spoken of, to relieve the boredom, stress, and stark terror that was the reality of their moment-to-moment existence in combat.
The three begin preparing the hotel for the coming hurricane, but are interrupted by Sheriff Ben Wade (Monte Blue) and his deputy Sawyer (John Rodney), who are looking for the Osceola brothers, a pair of American Indians who escaped from Sheriff's custody after being arrested on minor charges. James Temple promises the lawmen that he will use his influence with the local Indians to get the boys to surrender. Soon after the police leave, the local Seminoles show up seeking shelter at the hotel, among them the Osceola brothers.
With the storm approaching, Curly, Ralph, Angel and Toots pull guns and take the Temples and Frank hostage. They explain that the sixth member of their party is notorious gangster Johnny Rocco (Edward G. Robinson), who was exiled to Cuba some years before for being an undesirable alien. The gang discovered Sawyer looking about and knocked him unconscious. As they are held at gunpoint, Temple lets go a stream of insults toward Rocco, who responds by taunting Temple, explaining how he will one day return to prominence. At one point Rocco gives Frank a pistol and offers to fight a duel with him, but Frank declines, stating that he believes in self-preservation over heroics and that "one Rocco more or less isn't worth dying for." Sawyer grabs the gun and tries to escape, but Rocco shoots him. In the gunplay it becomes apparent that the gun that Rocco gave to Frank was not loaded. Rocco's men take Sawyer's body by boat to deep water and throw it overboard.
Rocco intends to hold the Temples and Frank hostage until his American contacts from Miami arrive to conclude a deal. As the storm rages, the Seminoles, usually sheltered in the hotel in storms, huddle outside as Rocco and his company worry about storm damage and insist the Indians stay outside. Rocco forces Gaye, his former moll, to sing for them by promising to give her a drink after she sings for them. After Gaye sings "Moanin' Low" a capella, Rocco berates her for her poor performance and fading looks and will not give her a drink. Frank goes to the bar, pours a drink and gives the drink to Gaye. While Gaye says "Thanks, fella" to Frank, Rocco slaps Frank in the face several times for disobeying his order not to give Gaye a drink; Frank ignores the slaps, and says, "You're welcome" to Gaye. Nora tells Frank that she knows his story about her husband's heroism was false and that Frank was the real hero. Mr. Temple invites Frank to come live with them at the hotel, a prospect that seems to intrigue Nora.
After the storm subsides, Sheriff Ben Wade shows up looking for Sawyer, who had telephoned from the hotel before the hurricane. Temple is forced by Rocco to lie and say that he has not seen the deputy, but as Wade is leaving he discovers Sawyer's corpse floating in the water nearby, where it has been blown in by the hurricane. Rocco blames the killing on the Osceola brothers, whom Wade then confronts in the nearby boathouse and kills.
After Wade leaves with Sawyer's body, Rocco's contact Ziggy (Marc Lawrence) arrives to conclude the deal. Rocco sells Ziggy a large amount of counterfeit money. Because the captain of the luxurious yacht on which they arrived from Cuba has moved it to deeper water to avoid storm damage they need another boat. Rocco forces Frank, who has skills as a seaman, to take him and his henchmen back on a small boat belonging to the hotel. Rocco pays James Temple for the stay and has his henchmen gather everyone's bags, except for Gaye's. He tells her he will not be taking her to Cuba with him and gives her some money for expenses. Nora and Gaye try to convince Frank to make a break for safety once he is outside the hotel, but he agrees to take the men to Cuba. Gaye appears to make a last-ditch attempt to convince Rocco to take her with him and uses the embrace to steal Rocco's gun, which she then manages to pass on to Frank.
Out on the Straits of Florida Curly worries that Gaye will tell the police about Ziggy. Rocco indicates that is exactly what he wants to happen. Soon afterwards Frank tricks Ralph into looking over the stern, races the engine and knocks him into the water. Toots realizes that Ralph has been lost, and fires at Frank, but the wounded Frank kills Toots. Hearing shots, Curly comes up the ladder to the main deck, but Frank mortally wounds him too. Curly staggers down to Rocco and Angel, but dies before he can respond to Rocco. Rocco demands Angel to go up, lying to Angel that Frank is dead. Angel refuses to take the chance. Rocco then kills Angel, and attempts to trick Frank into surrendering by offering to share his money. However, Frank is quiet, and is aware of the trick. Rocco comes up, concealing a gun, but Frank notices the gun and shoots him. Rocco is then shot again, and tries one more time, before Frank kills him.
Frank then radios the Miami Coast Guard station (using the correct Call sign "NAM") asking for help and to get a message to the hotel. Meanwhile, Gaye reassures Wade that Rocco bears the blame for the murder of Sawyer, and that he was misdirected into killing the Osceola brothers. Wade mentions that Ziggy's gang has been captured and leaves with Gaye to identify them. The phone rings and James and Nora are delighted to hear that Frank is coming back. Nora opens the shutters to the sun while out at sea Frank steers the boat towards shore.
The script was adapted from a 1939 play by Maxwell Anderson. In the play, the gangsters are Mexican bandidos, the war in question is the Spanish Civil War, and Frank is a disgraced deserter who dies at the end.
Robinson had top billing over Bogart in their four previous films together: Bullets or Ballots (1936), Kid Galahad (1937), The Amazing Dr. Clitterhouse (1938) and Brother Orchid (1940). For this movie, however, Robinson's name appears to the right of Bogart's, but placed a little higher on the posters, and also in the film's opening credits, to indicate Robinson's near-equal status. Robinson's image was also markedly larger and centered on the original poster, with Bogart relegated to the background. In the film's trailer, Bogart is repeatedly mentioned first but Robinson's name is listed above Bogart's in a cast list at the end.
Exterior shots of the hurricane were taken from stock footage used in Night Unto Night, a Ronald Reagan melodrama which Warner Bros. also produced in 1948.
The boat used by Rocco's gang to depart Key Largo, with Bogart's character at the helm, is named the Santana, which was also the name of Bogart's personal 55-foot (17 m) sailing yacht.
A high point of the film comes when Robinson's alcoholic former moll, ex-nightclub singer "Gaye Dawn", played by Claire Trevor, is forced by Rocco to sing a song a cappella before he will allow her to have a drink. Trevor was nervous about the scene, and assumed that she would be lip-syncing to someone else's voice. She kept after director Huston, wanting to rehearse the song, but he put her off, saying "There's plenty of time," until one afternoon he told her that they would shoot the scene right then, without any rehearsal. She was given her starting note from a piano, and, in front of the rest of the cast and the crew, sang the song. It was this raw take that was used in the film. The song was "Moanin' Low", composed by Ralph Rainger with lyrics by Howard Dietz, introduced on Broadway in the 1929 revue The Little Show by Libby Holman becoming a hit and Holman's signature song.
Author Philip Furia said about the song, 'Moanin' Low': "[it's] about a woman who's trapped in a relationship with a very cruel man. And ... you see [Trevor as Gaye] realizes that that's exactly her real-life situation. [Trevor's performance] slowly break[s] down, and her voice falters and she sings off key." Robinson is dismissive but "Bogart pours her a stiff drink, walks it over ... under gunpoint ... and gives it to her and says 'You deserve this'—it's just a great dramatic scene, [and] it's a wonderful use of a song in a non-musical picture. [Trevor] won [the Academy Award] based purely, I think, on that performance."
Academy Awards:Claire Trevor won the Academy Award for Best Supporting Actress for her role as Gaye Dawn.
In 2003, the American Film Institute nominated Johnny Rocco as a villain from this film for AFI's 100 Years...100 Heroes & Villains. Then in 2008, the American Film Institute nominated this film for its Top 10 Gangster Films list.
A Blu-ray DVD of Key Largo was released by Warner Bros. in 2016.