Robert Charles Austin, 66, of Asheville, was taken into custody just before 2 a.m. He faces an attempted first-degree murder charge, the Asheville Police Department posted to Facebook.
Investigators said Austin set on fire the 58-year-old homeless man on Sunday near a business in a popular tourist area in Asheville.
The man suffered severe burns and was hospitalized in critical condition.
It was not clear whether Austin and the man knew each other.
Investigators said it appeared he was doused with an accelerant and then set on fire.
Police were asking for help finding two potential witnesses to the attack. They were driving a white GMC Sierra pickup truck and a silver Jeep Liberty SUV.
Neither was considered a suspect, police said.