Ex-US Defence Secretary James Mattis has denounced President Donald Trump, saying he deliberately stokes division.
He said he was "angry and appalled" by Mr Trump's handling of ongoing protests over the death of African American George Floyd at the hands of police.
Mr Mattis berated Mr Trump's "abuse of authority" - and backed protesters seeking to uphold American values, as did ex-President Barack Obama.
Mr Trump described Mr Mattis as an "overrated general".
Mr Mattis quit in 2018 after Mr Trump decided to pull US troops out of Syria.
He has remained mostly silent since then, until his rebuke of the Trump administration was published in The Atlantic magazine on Wednesday.
In response to the fresh criticism, Mr Trump posted a series of tweets in which he claimed to have fired Mr Mattis.
"I didn't like his "leadership" style or much else about him, and many others agree," he wrote. "Glad he is gone!"
The row comes as new charges were brought against all of the sacked police officers present at Mr Floyd's death in the city of Minneapolis.
The charge against Derek Chauvin has been elevated to second-degree murder while the other three officers, previously uncharged, face counts of aiding and abetting murder.
The death has sparked huge protests across the US in recent days.
The vast majority of demonstrations over the past nine days have been peaceful, but some have turned violent and curfews have been imposed in a number of cities.
"Donald Trump is the first president in my lifetime who does not try to unite the American people - does not even pretend to try," Mr Mattis wrote in The Atlantic. "Instead, he tries to divide us."
He continued: "We are witnessing the consequences of three years of this deliberate effort. We are witnessing the consequences of three years without mature leadership."
SOURCE: BBC