Trump received some of his loudest and most sustained applause when he attacked the news media for its reporting on his trade policies and other issues.
"Stick with us," Trump said. "Don't believe the crap you see from these people, the fake news."
As he gestured at the press riser on the floor of the Municipal Auditorium, veterans in the stands took their cue from the commander in chief and pointed, booed and hissed at journalists.
"Just remember," Trump told the crowd, "what you're seeing and what you're reading is not what's happening."
In his speech here, Trump said he was "ready to make a deal" with Iran, just a day and a half after tweeting an all-caps threat of a military strike. And he boasted about his summit last month with North Korean leader Kim Jong Un, saying that he hopes the remains of some Americans killed during the Korean War will soon be transferred back to the US as a result of the agreement they reached in Singapore.
The delay in establishing the details of how and when the remains of US soldiers will be returned has been a source of tension between US and North Korean negotiators. Trump erroneously said on June 20 that North Korea had already "sent back" the remains of 200 soldiers.
Newly minted Veterans Affairs Secretary Robert Wilkie, who was confirmed by the Senate yesterday, accompanied Trump on the trip to Kansas City.
Trump also touted his investments in military infrastructure, including new F-35 fighter jets, Blackhawk helicopters, naval vessels and Humvees. Though he drew only lukewarm applause - and some laughter - from veterans when he brought up his proposal to create a sixth branch of the military called the "Space Force."
Trump's remarks were unusually partisan for an address to the nonpartisan VFW organisation. He railed at length against Democrats - deriding House Minority Leader Nancy Pelosi and Congresswoman Maxine Waters by name - and talked about how much "fun" he would have in the Midterm elections in November and in his own re-election campaign in 2020.
Trump also attacked Senator Claire McCaskill, (D), who faces a difficult re-election challenge here in the fall.
McCaskill's Republican opponent, Missouri Attorney-General Josh Hawley, greeted Trump on the tarmac of Kansas City International Airport with a handshake as he stepped off Air Force One, and then joined him on stage at the VFW convention.
Addressing the veterans, Hawley praised Trump's "courage," even though the President did not serve in the military, having received multiple deferments because of his bone spurs claim.
Following the VFW event, Trump headlined a closed-door fundraiser for the National Republican Senatorial Committee, which benefits Hawley.
Although Trump was warmly received by many veterans in the audience, some came up to a reporter following his speech to say privately that they were appalled by the tone of his remarks.
"This was a political speech," said Dwight Perry, 66, an Army veteran from Maryland. "This is not what you do at a VFW convention . . . He didn't have to come out here and talk about how great he is. That's not what you do here."
VFW national spokesman Joe Davis said the organisation is nonpartisan and has hosted numerous politicians from both parties over the years, including President Barack Obama. Asked whether the VFW endorses Trump's remarks, Davis said: "It's the President's words. We're a reflection of America."
Later in the day, the group expressed concern over the treatment of the media at the event.
"Today, we were disappointed to hear some of our members boo the press during President Trump's remarks," VFW said in a tweet. "We rely on the media to spread the VFW message, and @CNN, @NBCNews, @ABC, @FoxNews, @CBSNews, & others on site today, were our invited guests. We were happy to have them there."