According to British newspaper The Sun, the 23-year-old actor was short of a £1 coin he needed as a deposit for a cart at a Waitrose supermarket in New Malden, south London, but was assisted by the needy man who handed over the last of his change.
A local mum who witnessed the incident said Tom was so touched by the generous act, he gave his destitute benefactor the £1 coin back and an added bonus.
"My six-year-old daughter and I chatted to this homeless guy," the eye-witness said. "He was saying that a guy needed a pound for a trolley and he gave the pound to help."
"He said that he was sure the guy was Spider-Man in the movie. Then I watched the guy come back and (he) gave the homeless gentleman £100 - and the £1 from the trolley. I had tears in my eyes."
Another resident of New Malden, where the star's parents, comedian Dominic Holland and his photographer wife Nikki, live, said the star felt an obligation to reward such generosity from someone down on their luck.
"Tom is down to earth but was blown away by the selfless act and wanted to reward the homeless man for being so kind," they explained.