The boy, apparently unharmed and in good health, was discovered at a military base. Reports said he had taken shelter in a hut and found a tap to drink from but was hungry and immediately asked for food when he was discovered.
"A Self-Defence Force official who was on a drill found a boy whose age appeared to be seven," said Tomohito Tamura, spokesman for police in northern Hokkaido island.
The child's sobbing father related the emotional reunion in a television interview.
"I apologised to Yamato," his father said in a phone interview aired on TV Asahi, adding that his son nodded in response.
More From This Section
"First of all, it's really great he is safe," the father said through his tears. "I can't find words. It's good."
Self-Defense Forces spokesman Manabu Takehara told AFP that the boy "looked in good health" but was taken to hospital by helicopter for a check-up as a precaution.
The parents originally told police their son had got lost while they were out hiking to gather wild vegetables, but later admitted they became angry and ordered him onto the road because he had thrown stones at cars and people.
The local Hokkaido Shimbun newspaper said the boy had told police that on Saturday night he walked some distance to the corrugated metal hut on the military base -- located some 5.5 kilometres northeast of where he went missing.
"When the official asked 'are you Yamato?' the boy said 'Yes, I am'," he said.
Another military official told NHK that the boy was hungry so the soldier who found him gave him something to eat.
Nippon TV said there was a tap outside the hut and that the boy had been drinking water from it while he sheltered there.
Japanese media interrupted regular programmes to broadcast news of the stunning development in the case which has drawn huge media attention -- and criticism of the parents' actions.