Written and directed by Oliver Stone, an American infantry unit with internal conflicts fights in Vietnam in 1967 as the violence escalates.
An Air Force plane lands at a military airport in Vietnam, and soldiers get out and see men loading body bags.
In September 1967 the men of Bravo Company of the 25th Infantry are hiking in a jungle near the border of Cambodia. The man in front is using a machete. A soldier calls on a phone to Lt. Wolfe to find out what is the problem up on point. Chris Taylor (Charlie Sheen) is out of breath and stops when he sees a decaying human body. He moves on but soon throws up. Lt. Wolfe (Mark Moses) calls and says they are moving out. Chris has sat down, and Sgt. Barnes (Tom Berenger) asks what is wrong with him. Some men are sitting down, and St. O’Neill (John C. McGinley) lights a cigarette. Another soldier tells Gardner (Bob Orwig) to get up the hill and moves on. Chris says he has ants all over his neck, and a soldier says they are red ants and tries to help him. He says black ants are worse. He gives Chris a little water, and Sgt. Elias (Willem Dafoe) says he is hauling too much stuff. Elias says he will carry it for him but tells him to check with him first next time. They help Chris to his feet, and then he collapses.
A helicopter lands in a clearing, and men unload crates. Black soldiers talk to each other, and one tells Chris to dig his foxhole. Chris is thinking that he is so tired he does not know what is going on. No one cares about the new guys because their lives are not worth as much. They believe the best time to get killed is in the first few weeks so that you don’t suffer as much. He says you have to do guard duty at night and may only sleep three hours a night. He does not think he can keep it up for a year and thinks he made a big mistake coming there. Sgt. Barnes says there is a big movement. Gardner says that Charlie had Claymore mines in trees and blew up an entire platoon. Barnes says they got two lieutenants and a captain. Wolfe asks Barnes whom he wants in the ambush. Barnes tells Elias to take his squad out. Barnes tells Warren (Tony Todd) to stay in, but he needs Tex and Junior from his squad. Elias says he thought it was O’Neill’s turn to go out, but O’Neill disagrees and says that Tubbs and Morehouse are short. He says that Elias has the fresh meat. Elias tells Barnes that they don’t know anything, and they are probably going to run into something. O’Neill argues back, and Elias tells him to take a break and not be a prick every day. Barnes tells Elias he is moving out, and then he tells O’Neill his short termers can stay in; but he is going out because he needs veterans out there. Lt. Wolfe walks after Barnes and tells him that in front of the men he thinks he should give the orders. Barnes quietly says, “Yes, sir.”
Later men are ready to go, and Tex (David Neidorf) says it is going to rain tonight. He calls black Junior (Reggie Johnson) ugly, and Junior says he gets no justice from the white man. One of O’Neill’s men complains that they always get ambush, and another says it is politics. Gardner shows Chris a photo of his girl, and Chris says he is a lucky guy. Chris says he has no girl. Elias comes over and takes things away from Chris that he says he does not need. Elias tells Tex that he has Junior and Taylor in his position. Tex complains he doesn’t want them on his ass, and Elias says he has Taylor. Elias tells Gardner he has him. He tells him and Chris not to yell out if something happens because they will get to them.
Barnes orders them to saddle up and lock and load their rifles. They move out at dusk as thunder is heard. In the rain they move slowly through jungle. Chris is thinking about his parents and realizes he had a sheltered life. Now he wants to be anonymous like everyone else and do his part for his country, living up to what his grandpa did in World War I and his father did in the Second. He believes he is with guys no one cares about from small towns. Most of them have about two years of high school, and some may have a job waiting in a factory. They are poor and unwanted, but he believes they are fighting for their society and its freedom. He thinks it is weird to have the bottom of the barrel doing that. They call themselves “grunts” because they can take anything. Yet he thinks they are the best, the heart and soul. A soldier tells Taylor that he is up and asks if he can work the Claymore. Chris says he can, and he is reminded what to do. He is told not to sleep, and he says okay. Chris hopes that he can do something worthwhile or learn something new. He signs off that he misses grandma and his mom.
It is still raining when Chris looks at his watch. He wakes up Junior and says that it is his shift. Chris pulls his rain coat over his head and lies down to sleep. Junior leans on his rifle and falls back to sleep.
Chris wakes up suddenly, and it is no longer raining. He pulls an insect off his face and sees Junior snoring. He wraps a towel around his head and peeks out. He sees a soldier signal, and others follow him. He sees two men asleep. Soldiers are walking toward him, and suddenly shooting begins. The Americans are shooting, and Tex is wounded in the arm and screams. They call for Doc (Paul Sanchez), and he says he will be right there. Chris falls on his back and asks Doc how bad it is. Doc says it is just a scratch on his neck. Junior says Chris was sleeping on his shift. Doc tells Big Harold (Forest Whitaker) to watch him and not let him go into shock. Barnes puts his hand over Tex’s mouth and tells him to shut up and take the pain.
Elias is moving slowly with a flash light, and two shots are fired. Harold tells Chris he will be okay. Chris asks if one knows when one is going to die. He says he feels like he is fine. Harold tells him not to be morbid and says they will give him three hot meals a day and white sheets and white nurses who will give him blow-jobs if he pays them. Junior tells him not to baby-talk him because he fell asleep. Harold tells Junior to shut up. Chris says dying is not so bad as he holds a cloth to stop his neck from bleeding. Doc is pounding on Gardner’s chest and asking him to help and not give up, hoping he will make it; but they realize Gardner is dead. Barnes tells the men to take a good luck at “this lump of shit” so that they will understand what happens when you fuck up in a fire fight. He says if you do, he will guarantee you a trip out of the bush in a body bag. He says out there they have to keep wired tight at all times, and he tells Chris not to sleep on an ambush. Barnes says that he will make sure that the next person who sleeps during an ambush suffers. He tells Doc to bag him and throws a bag at him. Chris says he did not fall asleep while on his watch, but it was Junior. Others interrupt, and O’Neill tells him everyone has an excuse. Elias tells them to knock it off because they have two men who need attention. He tells them not to leave any ammo for the dinks. He tells Junior and Tony to carry Gardner. Walking back, Elias tells Barnes that the man would be alive if he had a few more days to learn something.
At a base camp Chris gets out of a jeep and tells black King (Keith David) that he got light duty for three days. King is carrying a box of beers in cans and says he stole them from supply. O’Neill asks Taylor if he is back, and he tells King and Taylor to come with him for a job. King and Chris are emptying the buckets from the latrine. King says he has only 92 days to go, and Crawford (Chris Pedersen) talks about what he will do on a California beach. He asks Taylor how long he has left, and Chris says he has 332 days. Chris says that he dropped out of college and volunteered for combat in Vietnam. King says he is crazy. Chris says he wasn’t learning anything. He asks why the poor should have to go off to war while the rich kids get away. King says he is a crusader and has to be rich to think like that. He says the poor have always been fucked over by the rich and always will. Later at sunset as they share a joint, King tells Chris he will introduce him to the heads.
King brings Chris into a hut where many candles are lit, and Elias smiles at him. King tells him to smoke a pipe, and Chris coughs. Elias asks Chris if this is the first time he has been stoned, and Chris says yes. Elias says then the worm has turned for him. Chris says he feels good and has no pain in his neck now. Elias smiles and says that feeling good is good enough. Elias tells him to put his mouth on the barrel of his rifle, and then he blows smoke through the barrel.
In another hut Bunny (Kevin Dillon) asks where everybody is and says they are hopheads. He is drinking a beer. Bunny likes the music, but Junior calls it red-neck noise; he wants some Motown jam. Bunny asks Junior if he ever smokes shit, but he says they are trying to keep the black man down on that shit; it is better to free your mind. Bunny says that stuff makes everything weird. He asks if he heard about the gooks putting chemicals in the grass so that they won’t fight and will become pacifists. Bunny says he likes a piece of pussy and the Indianapolis 500. Lt. Wolfe comes in, and Bunny shows him how he can chew up a beer can. Wolfe tells Rodriguez he has quite a shrine to Jesus. Wolfe sits down by the poker game and asks O’Neill how he is doing, but he says Barnes has all the cards. Barnes admits he is winning and says he isn’t cheating yet. Sandy offers Wolfe some Kentucky whiskey, and he thanks him for it. Barnes is drunk and asks Wolfe if he wants to play, but he says no; he does not want to be raped by them. O’Neill asks if he is saving up to be Jewish, and they laugh at him. Wolfe says he has to go and tells them to enjoy themselves. O’Neill watches Wolfe walk away and says he is a sorry ass. He asks Barnes if he thinks he will make it, and O’Neill says that he won’t.
In the drug hut some men are dancing and drinking beer. Others are smoking and dancing.
On New Year’s Day in the jungle Chris is walking with a rifle and thinking it is just another day. They find bunkers and clotheslines. Elias with a flashlight goes into a bunker. Wolfe sends Chris to one flank and Washington to the other side. Elias is walking in water in a tunnel. In a bunker they find a teapot still boiling. Elias has entered a room with lights and beds. Chris is smoking and sees a snake slither past his feet. Elias climbs up and shoots someone in another room.
Crawford tells Sal (Richard Edson) they found maps, but Sal says they should get out of there. Crawford says it is important, and suddenly there is an explosion. Barnes is angry, and Wolfe calls for help. O’Neill orders men to move out of there. Elias tells Wolfe that they need engineers because there are so many traps. Wolfe says they are on the way and that the North Vietnamese Army (NVA) has been spotted nearby on the river, and they have to go there fast. He tells Elias to leave four men and the medic there. Barnes orders the flanks in and to move out. O’Neill asks where Manny is, and others calls to him. They are spread out and are moving. They find Manny dead against a tree by the river. Barnes is angry, and Chris believes they loved him for it that day. They climb up out of a river basin. They hear a man shouting in Vietnamese, and a soldier points him out below running away to Barnes who shoots him dead.
They are passing through a village and see women. A soldier kills a pig. Barnes moves straw and finds a hole. He orders them to come out, and women and a girl do. Then he tosses a grenade into the hole to kill the men remaining. In a house Chris finds someone in a hole and orders him to come out. A boy and an older woman come out. Sgt. Warren (Tony Todd) tells Barnes that they found enough rice to feed a regiment, and Barnes orders him to bring a honcho. Chris is telling the boy that he was not going to hurt him. He asks why he didn’t listen to him and calls him stupid. Chris tells him to dance and shoots his rifle in front of his feet. He jumps up and down during the shooting. Bunny is angry because of Sandy, Sal, and Manny. O’Neill tells him to forget about it; but Bunny beats the boy with his rifle butt until he is dead. He exults at seeing his head broke apart and the exposed brains. He says the old woman probably runs everything and may have killed Manny. O’Neill tells him and Taylor that no one saw anything and that they should leave now. Bunny says they should do the whole village. Bunny takes a man to Barnes who tells him to get out of there.
Barnes uses the translator Lerner (Johnny Depp) and asks the man why the weapons are there. Lerner says they had no choice because the NVA killed the honcho; he says all the rice is theirs. Barnes does not believe him and asks who was the gook they killed on the riverbank. Lerner talks to him and says he may have been a scout. Barnes asks who are the rice and the weapons for, and he asks if it is for the Viet Cong (VC). Others says he is lying. The woman talks and comes forward, and Lerner says the man hates the NVA, and they come and take what they want. Barnes asks what the woman is saying, and Lerner says she needs to make a living and is complaining about killing their pigs. Barnes walks away as the woman keeps talking. O’Neill tells her to shut up. Barnes walks back and shoots her dead. A child cries, and a man cries over her. Barnes tells Lerner to tell him to stop talking, or he will waste more of them. Lerner talks to the man. A soldier suggests they do the whole village. A girl is crying, and Barnes picks her up and holds a pistol to her head while telling the man he is lying. They shout to each other in Vietnamese. Elias comes over and calls to Barnes and asks what he thinks he is doing. Barnes stands up and tells Elias to stay out of it because it is not his show. Elias tells Barnes he is not a firing squad. Elias hits Barnes and jumps on him, and they fight. Others manage to pull them apart. Barnes tells Elias that he is dead, and Elias says Barnes he will do time. Wolfe tells them to break it up and listen to him. He says the captain ordered them to torch the place and blow up the weapons. They are to round up all the suspected VC. Elias asks the lieutenant why he did not do anything. Wolfe says he does not know what he means. Wolfe walks away, and Barnes and Elias glare at each other. O’Neill pushes Barnes away and tells them all to move out.
They burn the huts and blow up supplies with grenades. Chris stops a woman from being raped by Tony (Ivan Kane), and others yell at him and call him a homosexual. He says she is a human being. Tony says Chris does not belong in Nam. Two girls are clinging to Chris, and Elias tells them to get out of there. The soldiers are leaving with the women and children. Some of the soldiers are carrying a child.
At a clearing Elias tells Captain Harris (Dale Dye) that his report will include Lt. Wolfe as being a witness to the shooting. Harris tells Sgt. Barnes that he wants a report from him. Barnes says he has plenty of witnesses, and Harris tells him to wait until they get to the base camp. Harris promises them that if he finds out there has been an illegal killing, there will be a court martial. Now he needs every man in the field, and these two will cease fire. He says they are going back into the bunker complex tomorrow, and they will be a briefing at 1900. Junior tells Harold that Barnes could have killed him, and he says that Bunny scares him. Warren tells them not to get hung up on this stuff. He says the gooks are smarter than they think and that Barnes knows that they were all NVA. He says he took them this far and will take them the rest of the way. Junior says a Christian does not go around cutting off heads; it is getting out of hand. Junior says that Warren does not know the difference because of the shit he shoots up all the time. Harold says he does not know and that he is hurting bad inside.
Wolfe tells Barnes that Elias will not be able to prove anything. Barnes calls him a water-walker like the politicians who are trying to fight this war with one hand tied around their balls. They have no need nor time for a courtroom here. Bunny gives Barnes a cigarette and calls Elias a rat. He says he is going to get the platoon in deep shit. Bunny says someone should frag him. O’Neill asks Barnes if there is going to be an investigation. Bunny tells O’Neill that he worries too much and that Barnes can take care of it.
Chris tells Elias it is a beautiful night. Elias says the stars have no right or wrong but are just there. Chris says that Barnes has it in for Elias who says that Barnes believes what he is doing. Chris asks Elias if he believes. Elias says he believed in 1965 but not now. He says what happened today is only the beginning; they are going to lose this war. Chris asks if he really thinks that. Elias says we have been kicking ass for so long that it is time for us to get ours kicked.
In the rain the platoon is in the jungle again, and Chris does not believe that they are fighting each other. The blacks talk to each other and cross a river. Chris takes a leech off his cheek. Wolfe tells them to move it out. A soldier is told not to drink the river water because he will get malaria; but he hopes he gets it. They walk through a forest, and the soldier in front is shot several times. They all take cover as O’Neill shouts for Doc to come up there. Chris learns that Lerner and Warren were hit. They are being attacked by RPGs that explode, and they shoot back. Wolfe calls in the coordinates for an adjusted attack. Elias asks if he can take men for a flank attack. Wolfe tells him to get him Barnes and says they have four men down up there. Barnes arrives and asks what happened to the red platoon. He asks Elias what he is doing there. Elias says where the dinks are and says they are caught in a cross fire and shoot each other. Barnes says that sounds far out to him. Elias says he saw it happen in ’66, and they cut them to pieces; he says he needs three men. Barnes says he has them and to go ahead. Elias says he needs covering fire and does not want to be exposed. Barnes tells him not to tell him how to run his war; he can go rat-fucking the brigade on his own time; but out there he belongs to him, and he orders him to move. Elias leaves, and Barnes says to get O’Neill up there.
Chris throws a grenade and then moves forward. A man shouts for ammo. Bombs are exploding among them, and a man calls to a sergeant that these are short rounds. Barnes helps a wounded man by cutting with his knife and calls for the medic. Chris carries a wounded man to Doc and puts him down. Chris sees Lerner wounded and tells him he will be all right. Elias with two men tells Chris he is coming with them. Lerner tells Chris not to leave him. Chris says he will be okay and goes with the others. Wolfe is calling Redleg and says adjusted coordinates will follow. Barnes comes to him, hits him, and calls him ignorant, asking what coordinates he gave them. He says Wolfe wasted a lot of people with his fucked up coordinates on his fire mission. Barnes takes the phone and tells Redleg to check their fire.
Elias and his three men are running through a forest and then stop. He tells them to stagger themselves and shoot anything that moves. He shows them where they will be coming; if they get through, they are fucked. He is going by the river in case they try to flank them. The third platoon is coming up to their rear.
Barnes orders O’Neill to pull back to the church to link up with the third platoon. Wolfe asks about Elias who will be cut off. Barnes tells Wolfe to haul ass too.
Chris and the other two see NVA soldiers with leaves on their helmets approaching in the woods and shoot at them until they run away. Chris says he got two of them, and Rhah (Francesco Quinn) says he got one. They see that Crawford is wounded. Barnes arrives and tells them to bring the wounded man and pull back to the church. Chris says Elias is still out there. Barnes says he will get him and that they pull back, or he will Article 15 them. They help Crawford.
Elias moves forward. NVA soldiers are running in the woods. Elias shoots at least two of them. Barnes shoots two of them. Elias shouts and runs.
Chris and Rhah bring Crawford back to the other men, and Rhah asks Chris where he is going.
Barnes is walking through the woods. He stops and see Elias appear in front of him. Elias smiles, and Barnes relaxes. Then Barnes takes aim again and shoot Elias twice. Chris runs up and sees Barnes coming back. Barnes says Elias is dead, and he tells Chris to fall back to the platoon. Chris asks about Elias. Barnes says there are gooks all over, and he is to get moving.
A helicopter lands by the ruined church, and soldiers help the wounded to get on board before it takes off. Then they carry four more bodies and put them on another helicopter. Finally Harold is carried on a stretcher to the chopper. Chris and others get on. He looks down and says they got Elias. On the ground Elias is running and falling. Chris looks at Barnes as they fly off. The helicopters return to the base camp.
In the hut Chris tells Rhah as he is smoking a pipe that he saw Elias. He knows that Barnes killed him because he saw his eyes when he came back. Rhah says the dinks could have got him; he has no proof. Chris suggests they frag Barnes tonight. King says he agrees on an eye for an eye, but Crawford, who wears a peace sign, says they should let military justice do it. Chris disagrees and asks whose story they will believe. Rhah says if Chris tries that, Barnes will shove back up his ass. Rhah suggests they watch their own asses because Barnes will be after them. King asks if he is going to forget Elias and the good times they had. Rhah says he is trying to cure a headache by cutting off the head. He says Elias did not ask them to fight his battles. He hopes there is a heaven, and he knows he will be up there drunk and getting high because he left the pain down here. Chris says he is wrong because Barnes is a murderer. Rhah says he remembers when Chris came and was admiring Barnes. Chris admits he was wrong, and Rhah says he was never right. He says Barnes has been shot seven times, and he is still alive; he believes he is not meant to die. He says only Barnes can kill Barnes.
In the doorway Barnes is drinking and asks if they are talking about killing. He comes out of where he was hiding and asks if they are experts on killing, and he calls them “potheads.” He picks up the pipe and asks if they smoke it to escape from reality. He says he does not need it because he is reality. He takes another drink of whiskey and says there is a way it ought to be and a way that it is. He says Elias was full of shit and a crusader. He has no fight with a man who does what he is told; but when he doesn’t, the machine breaks down, and they break down. He will not allow that in any of them. He hands the pipe to Rhah and says they all love Elias and want to kick ass. He is there alone and says no one will know. He dares the six of them to kill him. He says he shits on all of them. Chris insults him as he attacks him. They fight, and Barnes hits him and pulls a knife on him. Rhah warns him not to do it because he will get ten years for killing an enlisted man. Barnes cuts his cheek and lets him go. He turns around and asks what they know about death, and he goes out.
Chris and the others are sent them back into the valley the next day in helicopters and see where they were. He believes they are going to be the bait for an NVA regiment. At a camp soldiers talk, and one thinks they are in Cambodia now. Lt. Wolfe tells Ranucci that he is taking over Elias’s squad, and he says he has only five men alive. Wolfe tells him that he doesn’t care anymore.
King says he is glad he not going with them. He asks Chris what is the matter and wonders why he is not writing anyone. Chris is smoking a joint, and King says he is smoking too much of it and has some himself. King says the world will turn and asks how many days he has left. Chris does not like the way the world works. People like Elias get killed, and those like Barnes make up the rules; and people like him just suck on it. King says all he has to do is make it out of there, and the rest of his life is all gravy. O’Neill tells King to gather his stuff because his orders came through. King says they cut him some slack. He is to take the last chopper. Chris says he is happy for him and says he has his address. King asks if he is okay and tells him to take it easy. He tells him not to think too much. They shake hands several ways, and Chris walks him to the chopper.
Junior tells Barnes that his foot is messed up, and he has to get on the chopper. Barnes asks what is the problem. O’Neill says he said he can’t walk. Barnes orders Junior to put his boots on, and if he sprays more “skeeter repellent” on his feet, he is going to court martial his black ass. Junior dares him to do it and says the white folks have got all they could out of him. Barnes tells O’Neill to get a centipede he found in the ammo crate and put it in this boy’s crotch to see if he can walk. O’Neill goes to get it, and Junior says to wait because he will walk. Junior cries and says he can’t take it anymore. O’Neill tells Barnes that he got Elias’s R&R, and he hopes to go to Hawaii. He wishes he had been put on that last chopper. Barnes says they need every swinging dick they have out there. O’Neill says he is only asking for three days, and Barnes tells him to get back in his foxhole. O’Neill says he has a bad feeling that he is not going to make it out of there. Barnes says everyone has to die sometime.
King gets on the helicopter, and Chris waves goodbye to him.
Captain Harris is on the phone and promises Three Alpha a fire mission, and he asks them to tell him where the rounds hit. Harris is not able to talk to him anymore and hears Vietnamese talking.
At night NVA soldiers are running through the jungle. They hit a trip flare and use RPGs. Rhah tells them that air strikes are coming in, and they are not to get out of their foxholes. A soldier tells them not to shoot and makes it into the foxhole with Chris and Junior. The man says he has to get out of there and retreats further. Junior suggests they beat it, and Chris tells him he can go. They see the enemy and start shooting. They hear a whistle, and Chris tells him to hold it. They hear someone talking in Vietnamese. Bombs land nearby, and Chris says to get out of the hole fast because they are going to blow it. They crawl quickly away from the enemy. Chris sees them and charges forward while shooting. He gets back to the foxhole and goes farther. Junior runs away but is shot and killed. In a foxhole O’Neill hides under a dead body, and the NVA pass him by.
At a headquarters an officer has a phone and gives orders. NVA soldiers advance into the camp, and a bunker is blown up. Soldiers pull a wounded man into a foxhole. Wolfe asks where Barnes is and calls the captain and tells him that they have been over-run, and they are pulling back. The captain on the phone asks where they are going to pull back to because they are all over the perimeter. He orders Wolfe to hold in place and fight. Many soldiers on both sides are being killed and wounded. The captain orders all remaining firepower to be dropped on the perimeter and says it is a crazy war. A jet flies over. Chris sees Barnes trying to kill someone and tells him to stop. Barnes gets Chris down and is about to hit him with a shovel when a jet flies over and drops bombs.
In the morning Chris with a blackened face wakes up and sees a deer. He manages to stand up and struggles to walk. He sees many dead bodies and picks up a rifle. He sees Barnes crawling on his belly. Barnes turns over and tells him to get him a medic. Chris looks at him, and Barnes says do it. Chris shoots him twice, killing him. Some men arrive in front of an armored vehicle. They shout that they have wounded there. O’Neill crawls out of a hole and says all the faggots left him.
Chris is being carried on a stretcher. A bulldozer is pushing bodies into a pit. A medical helicopter is there. The captain is standing there as an aide reports that there were 122 wounded and still counting and an estimated 500 VC killed. Francis (Corey Glover) is wounded and tells Chris they are going to get out of there, and he will see him in the hospital. The captain sees O’Neill and tells him that he has the second platoon now. Chris is put on the helicopter and looks at the carnage below as they fly off. He thinks they did not fight the enemy; but they fought themselves, and the enemy was within themselves. The war was over for him but would always be with him. He fought with Barnes for his soul. He feels an obligation to build again and to teach other what he knows and in the rest of their lives to find goodness and meaning in life.
This fictional war drama portrays the insane violence of the foolish, wasteful, and imperialistic American intervention in a civil war in Vietnam after the Vietnamese drove out the colonial French. Differing beliefs on how to fight this war brings two sergeants into a deadly conflict in which the one who believes in ruthless killing eliminates the other who believes in justice. A young man caught in between is turned into a vengeful killer even though he believes in the justice of the latter sergeant.