The child, called Valentino, said he thought the man, who begs outside the family's shop, “needed it more than me”, the Bologna edition of La Repubblica reported.
But instead of accepting it, the man went into the shop and returned the money, which had been given to the child by his grandmother, to his parents.
“It wasn't right for me to keep it,” he said.
Valentino's mother wasn't so impressed with her son's good deed initially, saying €50 helps feed their family for two days, and punished him by making him clean the shop.
But she later relented, admitting it was “an extraordinary gesture”.