President Trump used his "Make America Great Again" rally to grab back control of the conversation following criticism from both opponents and supporters.
His response to deadly violence in Charlottesville was widely seen as too vague in its condemnation of neo-Nazis, while some supporters have been scathing about his announcement of more US troops for Afghanistan, a commitment he had promised to end.
The Arizona rally - unusual for a serving president - was his response.
Mr Trump accused journalists of misrepresenting his "perfect" words in the wake of the violence in Charlottesville, where Heather Heyer was killed after a car ploughed into a crowd of people protesting against far-right demonstrators including neo-Nazis.
"For the most part," Mr Trump said, "these are really, really dishonest people, and they're bad people. And I really think they don't like our country."
"The only people giving a platform to these hate groups is the media itself, and the fake news," he added, accusing the media of being the "source of division in this country".
The president then wrongly alleged that US TV networks were ending their live coverage of his speech because he was criticising them.
'Respect that fact'
Mr Trump has been accused by right-wing Breitbart news - run by his former chief strategist Steve Bannon - of "flip-flopping" on his "America first" approach and instead copying Barack Obama's Afghanistan policy.
In response he talked up his support for military veterans, said he was increasing defence spending so that troops were well-equipped and said "every American deserves a government that protects them... and fights for them."
He also said a pro-active approach to foreign policy had led to North Korea's leader Kim Jong-un "starting to respect the US".
"I respect that fact very much. Respect that fact," he said.
Mr Trump was at pains to say he wanted a better America for all its citizens, including immigrants.
But some of his remarks appeared designed to appeal to those of his supporters who have been accused of being white nationalists.
Mr Trump again linked illegal immigration to crime and drugs.
"This is like from a different age... These are animals. We are getting them out of here. We're throwing them in jails, and we're throwing them out of the country. We're liberating our towns," he said.
He hinted at a possible presidential pardon for controversial former Arizona sheriff Joe Arpaio, who rose to national prominence because of his tough stance against illegal immigration and was found guilty of in July over his detention of migrants.
And he also made an apparent reference to the removal of Confederate statues - monuments to figures from the slavery-supporting southern states that attempted to secede from the union.
Imploring people not to take down statues of former presidents such as George Washington, he echoed the objection of those who do not want Confederate statues removed.
"They're trying to take away our culture. They are trying to take away our history," he said.
No Trump rally is complete without a reference to Mr Trump's proposed barrier on the Mexican border - which he says will keep out illegal immigrants and drug traffickers.
"If we have to close down our government, we're building that wall," he said.
Mr Trump has always insisted Mexico will pay, but has accepted that US taxpayers will have to cover the initial funding and he wants money allocated in the upcoming US budget.
If there is no deal on the budget and the debt ceiling then the federal government will shut down, federal employees will not go to work and millions of people will not get paid get paid.
A showdown in Washington looms.
Mr Trump also said he would "probably end up terminating Nafta" - the free trade agreement between the US, Mexico and Canada.
Mr Trump made sure to tell his audience that he had not sold out, despite having become president and not yet having turned many of his campaign promises into reality.
"I always hear about the elite. You know, the elite. They're elite? I went to better schools than they did. I was a better student than they were. I live in a bigger, more beautiful apartment, and I live in the White House, too, which is really great," he said.
"I think - you know what? I think we're the elites. They're not the elites," he added.
Later he distanced himself from some commentators' description of his Afghanistan policy speech as "presidential".
Referring to Senator John McCain's vote against his bid to repeal Obamacare, he said: "You know, they all said, Mr President, your speech was so good last night, please, please, Mr President don't mention any names.
"So I won't. I won't. No I won't vote - one vote away, I will not mention any names. Very presidential, isn't it? Very presidential."
Mr Trump's preoccupation with the relative numbers of his supporters and opponents at events continued.
In the past he has insisted that more people attended his inauguration as president than were at President Obama's.
He has also bristled at reminders that while he won the election, a larger number of people overall voted for his opponent Hillary Clinton.
In Phoenix he told the crowd that the secret service had informed him that there were "not too many people outside protesting".
He also said Phoenix had been the location of his first rally speech - "The crowds were so big, almost as big as tonight".
But the Washington Post newspaper reported that some in the crowd lost interest in the president's speech, with "hundreds" leaving early and others sitting down and looking at their phones.