In 1968, a disastrous American advance in the Vietnam War has Lieutenant Terry Childers (Samuel L. Jackson) executing an unarmed prisoner in order to intimidate a captive North Vietnamese army officer into calling off an ambush and mortar attack on U.S. Marines. His act thereby saves the life of the wounded Lieutenant Hayes Hodges (Tommy Lee Jones). As all of Hodges’ men die in the battle, his relief at being the sole survivor haunts him.
In 1996, now a colonel, Hodges is about to retire from the Marine Corps and is reminiscing about his years in uniform. As a result of wounds he sustained during Operation Kingfisher, he was no longer able to continue serving as an infantry officer, so the Marine Corps sent him to law school and he continued his career as a JAG officer. He subsequently enters the Camp Lejeune Officers Club, where numerous Marine officers wait to honor his service at a pre-retirement party. Hosting the event is his old friend, Colonel Terry Childers, who is now the commanding officer of a Marine Expeditionary Unit (MEU).
Subsequently deployed to Southwest Asia as part of an Amphibious Readiness Group, Childers and his embarked MEU are called to evacuate the U.S. Ambassador to Yemen from the embassy grounds as a routine demonstration against American influence on the Arabian peninsula and in the Persian Gulf turns into rock-throwing and sporadic automatic-rifle fire by snipers from nearby rooftops. After escorting Ambassador Mourain (Ben Kingsley) and his family to a waiting helicopter, Childers returns to the embassy to retrieve the American flag; meanwhile three Marines are killed by snipers on nearby rooftops. Things soon become worse as the demonstrators attack the rest of the Marines with their own guns; Childers has finally had enough and orders his men to open fire on the crowd, resulting in the deaths of 83 irregular Yemeni soldiers and civilians, including children, most of whom were unarmed, and injuries to over 100 more, saving the lives of the remaining US Marines and Embassy staff.
Back in the U.S., the U.S. National Security Advisor, Bill Sokal (Bruce Greenwood), pressures the military to proceed with a court-martial to try to deflect negative public opinion about the United States and salvage American relations in the Middle East, placing all the blame for the incident onto Childers.
Childers subsequently approaches Hodges and asks him to be his defense attorney at the upcoming court-martial. Hodges is reluctant to accept, knowing that his record as a JAG officer is less than impressive and Childers needs a better lawyer. But Childers is adamant because he wants an attorney who has served in combat.
With little time to prepare a defense, Hodges visits Yemen, only to find an uncooperative government and firsthand account of the serious injuries the crowd members endured. Most of the evidence is stacked against Childers, particularly the fact that no one else in his team can testify to having seen gunfire coming from the crowd, in particular Captain Lee (Blair Underwood), who hesitated to follow Childers’ order.
Sokal is determined for him to be convicted and is met by the overzealous prosecutor, Major Biggs (Guy Pearce), who believes Childers to be absolutely guilty. Sokal at one point burns a videotape of security camera footage revealing that the crowd were indeed armed and firing at the Marines, evidence that would potentially exonerate Childers. He also blackmails Ambassador Mourain into lying on the stand and saying both that the crowd had been peaceful and that Childers had been violent towards him and his family during the evacuation.
Colonel Hodges meets with Mourain’s wife after the ambassador’s testimony to hear her side of the story. Although she admits Childers had been valiant, she refuses to testify and destroy her marriage.
During the trial, Hodges presents a shipping manifest proving that a tape from an undamaged camera which had been looking directly into the crowd—the tape Sokal had burned—had been delivered to Sokal’s office, but failed to show up at the trial, arguing that this tape would not have been damning evidence against Childers if it had, in fact, shown the crowd was armed.
Captain Lee is grilled on the witness stand by Major Biggs and despite trying to give favorable testimony, leaves doubt of Childers’ innocence.
Childers himself eventually takes the stand and engages in a fierce verbal battle with Biggs. Biggs produces an audio tape which contains the recording of Childers’ poor choice of words when giving his order. While defending his actions, Childers loses his temper while stating that he would not sacrifice the lives of his men to appease the likes of Biggs. Hodges is left at a loss for words, knowing that this could easily doom Childers because they do not have any credible evidence to defend Childers’s claims that the crowd was armed, and his poor choice of words can be interpreted by the jury as being prejudiced towards Yemenis or being overly aggressive.
Already at an advantage, the prosecution presents the Vietnamese colonel who witnessed Childers execute a POW in Vietnam, Colonel Binh Le Cao, as a rebuttal witness, trying to drive home the idea that Childers is malicious. Hodges cross-examines him and gets him to testify that had the circumstances been reversed, Cao would have done the same thing. After the trial, Hodges visits Sokal and asks him what happened to the tape; Sokal denies its existence.
In the end, Childers is found guilty of the minor charge of breach of the peace (having disobeyed his order to just show his Marines), but not guilty of the more serious charges of conduct unbecoming an officer and murder, and that he is forced to retire honorably from the Marine Corps for the rest of his life. Meanwhile, National Security Adviser Sokal and Ambassador Mourain have lost their jobs after being convicted of destruction of evidence and perjury respectively.
As he leaves the court house, Childers encounters Colonel Cao from a distance, who salutes Childers, and he returns it to him respectfully.