The Hansel and Gretel actress made the confession on The Graham Norton Show and said she felt "quite bad" about the incident.
Arterton told Norton: "I was in one of those ATM cash machine rooms and there was a tramp in there. He kept looking at me and then he grabbed my bum really hard.
"I turned round and properly punched him in the face. I then realised I'd punched a tramp in the face so I ran. Thank God he didn't punch me back."
She added: "I actually felt quite bad about it."
The 27-year-old former Bond girl said that her desire to fight was one of the factors that led her to take her latest role as witch hunter Gretel in an updated take on the Hans Christian Andersen fairytale.
"One of the reasons I wanted to do the film because I've always wanted to punch people. It was fun," she said.
"I had to do lots of training because I had never done anything like it before and I loved it, absolutely loved it."
Watch the trailer for Hansel and Gretel below: