21-year-old Garry Beauford of Chester, Pennsylvania is charged with second degree assault.
Brendan O'Toole, 26, suffered a cut to his face and a possible concussion when he was struck on Wednesday.
The Virginia native has been running cross-country since November to call attention to veteran's issues.
His 21-state, 3600-mile trek is called "The Run for Veterans."
"I had a buddy from Delaware who inspired me to join the Marine Corps and he ended up killing himself after Iraq," he said.
O'Toole says he was punched in the face by a stranger when he stopped in Wilmington for a break Wednesday afternoon near Sixth and Market.
"Some guy just came up and socked me in my face, put me on my back," he said.
Security cameras caught the incident on video and, on Thursday, police tracked him down.
"He was sleeping in a doorway at Saint Mary actually dressed in the same clothing that he was wearing yesterday when he assaulted our victim," said Cpl. Mark Ivey of the Wilmington Police.
The blow is delaying O'Toole's trip and his plans.
"I definitely have a minor concussion. The inside of my head is pounding pretty hard," he said.
O'Toole is planning on seeing a doctor in Washington, D.C., but said nothing is going to keep him from completing his mission to finish the run in Maine.
"I'm pretty tired. I've been bit by dogs, seen tornadoes, car accidents. We've had a lot getting across the country but we're out here to raise money for veterans. That's our main mission, so we're not going to let anything deter us from accomplishing that," said O'Toole.
O'Toole hopes to finish his run in Portland, Maine on November 11th.
To follow his journey, visit www.runforveterans.com.