The suspect, who is in custody, is a 22-year-old Danish man who was detained near the Fields shopping mall, said police inspector Soren Thomassen, head of the Copenhagen police operations unit.
"We know that there are several dead" and "several injured", Thomassen told a news conference, adding that terror cannot be ruled out. "We do not have information that others are involved. this is what we know now."
Images from the scene showed people running out of the mall, and Denmark's TV2 broadcaster posted a photo of a man being put on a stretcher. Witnesses said people were crying and hid in shops.
Copenhagen Mayor Sophie H Andersen tweeted: "Terrible reports of shooting in Fields. We do not yet know for sure how many were injured or dead, but it is very serious."
Laurits Hermansen told Danish broadcaster DR that he was in a clothing store at the shopping centre with his family when he heard "three-four bangs. Really loud bangs. It sounded like the shots were being fired just next to the store".
Police said they were first alerted to the shooting at 5:36pm (4.36pm UK time). A huge presence of heavily-armed police officers was on hand, with several fire department vehicles also parked outside the mall.
"One person has been arrested in connection with the shooting at Fields. We currently are not able to say more about the person concerned," Copenhagen police tweeted.
"We have a massive presence at Fields and are working on getting an overview."
The mall is on the outskirts of Copenhagen just across from a subway line that connects the city centre with the international airport. A major highway also runs adjacent to Fields.
A concert by former One Direction band member Harry Styles was scheduled to be held at 8pm (7pm UK time) at the nearby Royal Arena. It was unclear whether the concert would be held.
On Snapchat, Styles wrote: "My team and I pray for everyone involved in the Copenhagen shopping mall shooting. I am shocked. Love H."
Shortly after the shooting, the royal palace said a reception with Crown Prince Frederik connected to the Tour de France cycling race had been cancelled.
The first three stages of the race were held in Denmark this year, the palace said in a statement. The reception was due to be held on the royal yacht that is moored in Soenderborg, the town where the third stage ended.