The incident at the Riverchase Galleria in Hoover started with a physical altercation between an 18-year-old and the 21-year-old gunman, police said.
The city of Hoover says the incident has been brought under control by police.
Hoover police already had a heavy presence both outside and inside the mall.
Several shoppers were seen with their guns drawn. Among the injured was a 12-year-old girl. They spotted a suspect waving a pistol and shot him. "He was dead on the scene".
Some people have been taken to hospitals. The 12-year-old girl had to undergo surgery.
Local TV news footage showed emergency response vehicles at the scene as police directed shoppers and vehicle traffic out of the area. She was taken to a Children's Hospital of Alabama and is in stable condition, according to police. "We are working closely with the Hoover Police Department".
The Jefferson County Sheriff's Office will lead the investigation into the officer-involved shooting.
Image The shooting took place after a fight between teenagers. Pic 11Alive
"We were fortunate that that officer was there, where he needed to be", said Captain Rector.
Social media video posted online reportedly from inside the mall during the shooting depicted chaotic scenes with numerous rounds of gunfire heard.
"Hopefully by tomorrow (Friday), everything is back to normal and people that want to come out and shop, we know this is a safe environment", Derzis said.
There is no other information at this time.
"This was my first Black Friday", the high schools senior said.
A confrontation erupted at an Alabama mall on Thanksgiving night, and it ended with a gunman injuring 2 before he was shot dead.