U.S. Army Captain and special operations veteran Benjamin L. Willard (Martin Sheen), returned to Saigon since his involvement in the Vietnam War, drinks heavily and hallucinates alone in his room. One day military intelligence officers Lt. General Corman (G. D. Spradlin) and Colonel Lucas (Harrison Ford) approach him with a top-secret assignment to follow the Nung River into the remote jungle, find rogue Special Forces Colonel Walter E. Kurtz (Marlon Brando) and kill him. Kurtz apparently went insane and now commands his own Montagnard troops inside neutral Cambodia.
Willard joins a Navy PBR commanded by "Chief" (Albert Hall) and crewmen Lance (Sam Bottoms), "Chef" (Frederic Forrest) and "Mr. Clean" (Laurence Fishburne). They rendezvous with reckless Lieutenant Colonel Bill Kilgore (Robert Duvall), a commander of an attack helicopter squadron, who initially scoffs at them. Kilgore befriends Lance, both being keen surfers, and agrees to escort them through the Viet Cong-filled coastal mouth of the Nung River due to the surfing conditions there. Amid napalm air strikes on the locals and Ride of the Valkyries playing over the helicopter loudspeakers, the beach is taken and Kilgore orders others to surf it amid enemy fire. While Kilgore nostalgically regales about a previous strike, Willard gathers his men to the PBR, transported via helicopter, and begins the journey upriver.
Willard sifts through files on Kurtz, learning that he was a model officer and possible future General. The crew later encounters a tiger and visit a supply depot USO show featuring Playboy Playmates which goes awry. Afterwards, the crew inspect a civilian sampan for weapons but Mr. Clean panics and machine-guns everyone on board. Willard coldly shoots dead the only woman alive to prevent any further delay of his mission. Tension arises between Chief and Willard as Willard believes himself to be in command of the PBR, while Chief prioritizes other objectives over Willard's secret mission. Reaching the chaos of a US outpost at a bridge under attack, Willard learns that the missing commanding officer, Captain Colby (Scott Glenn), was sent on an earlier mission to kill Kurtz.
Meanwhile, Lance and Chef are continually under the influence of drugs. Lance in particular smears his face with camouflage paint and becomes withdrawn. The next day the boat is fired upon by an unseen enemy in the trees, killing Mr. Clean and making Chief even more hostile toward Willard. Ambushed again, by Montagnard warriors, they return fire despite Willard's objections. Chief is impaled with a spear and tries to pull Willard onto the spearhead before dying. Afterwards, Willard confides in the two surviving crew members about the mission and they reluctantly agree to continue upriver, where they find the banks littered with mutilated bodies. Arriving at Kurtz's outpost at last, Willard takes Lance with him to the village, leaving Chef behind with orders to call an airstrike on the village if they do not return.
In the camp, the two soldiers are met by an American freelance photographer (Dennis Hopper), who manically praises Kurtz's genius. As they proceed, Willard and Lance see corpses and severed heads scattered about the temple that serves as Kurtz's living quarters and encounter Colby, who is nearly catatonic. Willard is bound and brought before Kurtz in the darkened temple, where Kurtz derides him as an errand boy. Meanwhile, Chef prepares to call in the airstrike but is kidnapped. Later imprisoned, Willard screams helplessly as Kurtz drops Chef's severed head into his lap. After some time, Willard is released and given the freedom of the compound. Kurtz lectures him on his theories of war, humanity and civilization while praising the ruthlessness and dedication of the Viet Cong. Kurtz discusses his son and asks that Willard tell his son everything about him in the event of his death.
That night, as the villagers ceremonially slaughter a water buffalo, Willard enters Kurtz's chamber as Kurtz is making a tape recording, and attacks him with a machete. Lying mortally wounded on the ground, Kurtz whispers his final words "The horror ... the horror ..." before dying. Willard discovers substantial typed work of Kurtz's writings and takes it with him before exiting. Willard descends the stairs from Kurtz's chamber and drops his weapon. The villagers do likewise and allow Willard to take Lance by the hand and lead him to the boat. The two of them ride away as Kurtz's final words echo eerily.