Officials received a call about a blast and fire at a two-story commercial building, Director of Communications Michael Parks said.
Parks told CNN that officials are working to contain a three-alarm fire that spread to at least two other commercial buildings.
Jesse Green posted a video clip on Twitter.
“I live about two miles away and it rattled my windows,” he told CNN. “I was able to get close and get this video.”
He said about 50 people were in the area, and state police cleared everyone out shortly after he recorded the video.
Two people were taken to a hospital with serious injuries, and another with minor injuries, Parks said. Officials are trying to determine if others might have been injured.
The cause of the fire is under investigation.
Harrisonburg is about 54 miles northwest of Charlottesville, Virginia.