The movie opens in the Caribbean, on the Island of San Moreno, where a trio of important looking men (a Chinese militant, a Russian General, and a European businessman) are meeting with the island's governor. After paying him a suitcase full of money for a special operation, the three men are joined, via helicopter, by Major Vladakov (Tim Curry), the second best terrorist in the world, who will be in charge of the operation. This entire event is witnessed by a young boy named Roberto who takes pictures of the governor, the Major, and his men.
The next morning finds retired Lt. Commander Quinton McHale (Tom Arnold) making his way to the Naval base of San Ysidro, where he does some trading with the officers. Such goods and services include selling home-brewed beer, ice cream, and swimsuit calendars to the men of the San Ysidro Naval Base in exchange for things like medicine and satellite photos to help out the people of San Moreno. The satellite photos are actually his way of spying on the opposing children's baseball team. Stationed at the base are his old crew. Virgil, a cigar-chomping ladies man and gunner. Happy, the team lookout who lives in a treehouse. Willie, the team techie and moonshine maker. Gruber, a slightly portly card-player and cigar horder. And Christy, the group's musclehead who can unscrew a beer bottle with his eye.
However, the base is now commanded by newly arrived Captain Wallace B. Binghamton (Dean Stockwell) and Lieutenant Penelope Carpenter (Debra Messing). Capt. Binghamton believes his men have gone native and confiscates all of the products McHale has sold them. He wants to resurrect his career after having mistakenly sunk a luxury cruise liner, for which he is famously known.
Vladakov takes control of the baseball field and beach on San Moreno to set up his base of operations. After Roberto inadvertently alerts Vladakov to McHale's presence, (mostly thanks to the jersey that McHale gave him and the team), Vladakov uses his new stealth boat to blow up McHale's home and nearly destroys his PT-73, a decommissioned PT Boat, which reveals that they have a rather bad history with each other. When the governor tells Vladakov that his operations are disrupting the lives of the villagers, Vladakov and his men invade the village during their fiesta, blowing it up, and displacing everyone that lived there.
At the Pentagon, Cobra (Ernest Borgnine), who is a Naval Admiral, finds out about Vladakov's presence on San Moreno and instructs Binghamton to stand down in favor of McHale, revealing that he was once a highly decorated, top covert-operative. This shocks Binghamton, but he relays the message to McHale. Unfortunately, McHale rejects the mission, saying he wants nothing to do with it, or with Binghamton. However, upon learning that the village was destroyed, McHale accepts the assignment with the stipulations that he be given his old crew, men stationed at San Ysidro, and complete autonomy from Binghamton. Binghamton appears to agree but enlists Ensign Charles Parker (David Alan Grier) to spy on McHale. Slowly both Parker and Carpenter realize that Binghamton is an incompetent officer.
McHale sets up a camp site for the villagers and, after invading Vladakov's base to find out what's going on, heads to Cuba for supplies to fix the re-commissioned PT-73 and to combat Vladakov. McHale and his crew use a pirated variety show broadcast to prevent Vladakov from stealing missile launch codes and entertain the villagers. Binghamton, tired of sitting on the side lines, attempts an attack on Vladakov's base but upon arrival, it is vacated and shown to be a front. Vladakov has killed the men that hired him to blow up The Pentagon as his motives are finally revealed. He was monitoring communications between McHale and Cobra and is aware that Cobra is en route to San Moreno to help take out Vladakov. Vladakov attempts to kill Cobra using his stealth boat. Roberto is aboard and he tries to short out the boat to no avail. He is captured by Vladakov, but manages to jump ship. After Ensign Parker saves Roberto, McHale successfully kills Vladakov using a torpedo he bought in Cuba, as revenge for Vladakov killing Roberto's father in Panama. Cobra lands safely and reveals that he is McHale's father, none other than now Admiral Quinton McHale, Sr. and former WWII era commander of the PT-73. Finally, the film ends with the commendations of McHale's crew, and the promotions of Lt. Carpenter and Ensign Parker, the US Navy rebuilding the baseball field, McHale re-retiring so that he may pursue a relationship with Carpenter, and Binghamton's apparent demotion to umpire for a kids' baseball game.Tom Arnold as Lt. Commander Quinton McHale, Jr. (Called 'Skipper' by his old crew)Dean Stockwell as Captain Wallace B. BinghamtonDebra Messing as Lt. (later Lt. Commander) Penelope CarpenterErnest Borgnine as Admiral Quinton McHale, Sr.David Alan Grier as Ensign (later Lt. JG) Charles T. ParkerTim Curry as Major VladakovBruce Campbell as Petty Officer 1st Class Virgil (Ladies man, pointman/gunner)French Stewart as Seaman Happy (Lives in a treehouse, lookout)Brian Haley as Seaman Apprentice Christy (Muscle of the crew)Danton Stone as Petty Officer 2nd Class Gruber (Smokes cigars and plays poker)Henry Cho as Petty Officer 3rd Class Willie (technical expert)Tommy Chong as Armando / Ernesto
The film received largely negative reviews from critics and was a bomb at the box office, grossing only $4.5 million in ticket sales. McHale's Navy was nominated for a Razzie Award for Worst Remake or Sequel, losing to Speed 2: Cruise Control. It maintains a 3% rating on Rotten Tomatoes.