The billionaire and reality TV star said Mr McCain was only considered a hero because he was a prisoner of war.
He then added: “I like people who weren’t captured.”
The comments prompted strong criticism across the party. Rival contender Rick Perry said the remarks were a “new low” in US politics.
Mr Trump later sought to clarify his remarks, although he did not apologise.
“If a person is captured, they’re a hero as far as I’m concerned,” he said. “I don’t like the job John McCain is doing in the Senate because he is not taking care of our veterans.”
The two have clashed before, with Mr McCain accusing Mr Trump of having “fired up the crazies” with his attacks on Mexican immigrants.
Mr McCain was held for five-and-a-half years after his plane was shot down in the Vietnam war. Mr Trump avoided service through student and medical deferments.
The 2008 presidential candidate is yet to respond to Mr Trump’s remarks, although his daughter Meghan tweeted she was “disgusted”.
Many of Mr Trump’s rivals for the nomination lined up to attack him.