A 22-year-old Danish man was arrested after the shooting on Sunday (Monday AEST), Copenhagen police inspector Soren Thomassen told reporters, adding there was no indication that anyone else was involved in the attack, though police were still investigating.
Gun violence is relatively rare in Denmark.
Thomassen said it was too early to speculate on the motive for the shooting, which happened in the late afternoon at Field’s, one of the biggest shopping malls in Scandinavia and located on the outskirts of the Danish capital.
When the shots rang out, some people hid in shops while others fled in a panicked stampede, according to witnesses.
“It is pure terror. This is awful,” said Hans Christian Stoltz, a 53-year-old IT consultant, who was bringing his daughters to see Harry Styles perform at concert scheduled for Sunday night near the mall.
“You might wonder how a person can do this to another human being, but it’s beyond … beyond anything that’s possible.”
Thomassen said the victims included a man in his 40s and two “young people,” without giving details. Several others were injured, three of them critically, he said.
He said police received the first reports of a shooting at 5.37pm (local time), and arrested the suspect 11 minutes later.
Thomassen described the suspect as an “ethnic Dane,” a phrase typically used to mean someone is white.
Danish broadcaster TV2 published a grainy photo of the alleged gunman, a man wearing knee-length shorts, a vest or sleeveless shirt, and holding what appeared to be a rifle in his right hand.
“He seemed very violent and angry,” eyewitness Mahdi Al-Wazni told TV2.
“He spoke to me and said it (the rifle) isn’t real as I was filming him. He seemed very proud of what he was doing.”
Danish Prime Minister Mette Frederiksen said the Scandinavian country had been hit by a “cruel attack”.
“It is incomprehensible. Heartbreaking. Pointless,” she said.
“Our beautiful and usually so safe capital was changed in a split second.”
Images from the scene showed people running out of the mall, and TV2 posted a photo of a man being put on a stretcher.
After the shooting, an enormous contingent of heavily armed police officers patrolled the area, with several fire department vehicles also parked outside the mall.
Organisers called off the Harry Styles concert, which had been scheduled at the nearby Royal Arena, by order of police.
On Snapchat, Styles wrote: “My team and I pray for everyone involved in the Copenhagen shopping mall shooting. I am shocked. Love H.”
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.
It was the worst gun attack in Denmark since February 2015, when a 22-year-old man was killed in a shootout with police after going on a shooting spree in the capital that left two people dead and five police officers wounded.