The shooter was reportedly killed by police shortly after the attacks in Chattanooga.
Police said on Twitter that the "active shooter situation is over," and further details were expected at an upcoming press conference.
"We have an officer down," Chattanooga mayor Andy Berke said at a brief press conference, without specifying the officer's condition.
"The suspect is also down."
President Barack Obama was briefed about the situation, White House spokesman Eric Schultz said.
A US official said shots were fired at a Navy reserve center and a military recruitment center in Chattanooga, locations that are several miles apart.
Erica White said she witnessed the shooting at the recruiting center through the window of a hair salon two doors down.
"We heard one pop, really loud pop. So we went to the door to see what it was," White told CNN. "We saw a guy in a silver Mustang just unloading on the naval recruiting place."
White said she watched in horror as the man reloaded his gun and opened fire again. He then backed up his car, pulled up to another part of the recruiting center and started shooting again.
"We're all shook up," she said. "Never expected something like this."
The incident was reminiscent of a 2009 shooting at a recruiting center in Arkansas in which one soldier was killed and another injured.
The US Navy tweeted that it could confirm there was a shooting at a recruiting building in Chattanooga.
It said the shooting did not affect the nearby naval reserve base.
The base was placed on lockdown following the shooting, as were a local college, area businesses and government offices.
Local media published images of police officers crouching behind their cars with rifles drawn as they sought to take down the shooter.
Bullet holes could be seen in the windows of the recruiting center and shell casings littered the parking lot.
Senator Bob Corker, a former mayor of Chattanooga, said he was "heartbroken."
"This is a difficult day for Tennesseans and our thoughts and prayers are with all affected by this tragedy," he said in a statement.