Jacob Tyler Roberts had armed himself with an AR-15 semiautomatic rifle and had several fully loaded magazines when he arrived at a Portland mall on Tuesday, said Clackamas County Sheriff Craig Roberts.
The sheriff said the rifle jammed during the 22-year-old's attack, but he managed to get it working again. He later shot himself. The sheriff said authorities don't yet have a motive.
A law enforcement official has told The Associated Press the shooter did not have a criminal record. The official spoke on condition of anonymity because he was not authorized to discuss details of an ongoing criminal investigation.
Two people - a 54-year-old woman and a 45-year-old man - were killed, and another, Kristina Shevchenko, whose age could not be confirmed, was wounded and in serious condition on Wednesday.
The shooter, who wore a mask, fired randomly, investigators said. People at the mall were heroic in helping get shoppers out of the building, including off-duty emergency room nurses who rendered aid, Roberts said.
In response to previous mass shootings elsewhere, the first arriving officers were trained to form teams and go inside instead of waiting for SWAT. Employees at the mall also received training to handle such a situation.
"This could have been much, much worse," Roberts said.
The first 911 call came at 3:29 p.m. Tuesday. The first officers arrived a minute later. By 3:51 p.m., all the victims and the gunman and rifle had been found. Four SWAT teams spent hours clearing the 1.4 million square-foot mall, leaving shoppers and workers to hide in fear.
The mall Santa, Brance Wilson, was waiting for the next child's Christmas wish when shots rang out, causing the mall to erupt into chaos.
About to invite a child to hop onto his lap, Wilson instead dove for the floor and kept his head down as he heard shots being fired upstairs in the mall.
"I heard two shots and got out of the chair. I thought a red suit was a pretty good target," said Wilson, 68. Families waiting for Santa scattered. More shots followed, and Wilson crept away for better cover.
Witnesses said the gunman fired several times near the mall food court until the rifle jammed and he dropped a magazine onto the floor, then ran into the Macy's store.
Witnesses heard the gunman saying, "I am the shooter," as he fired rounds from a semi-automatic rifle inside the Clackamas Town Center, a popular suburban mall several miles from downtown Portland.
Some were close enough to the shooter to feel the percussion of his gun.
Police rapid-response teams came into the mall with guns drawn, telling everyone to leave. Shoppers and mall employees who were hiding stayed in touch with loved ones with cellphones and texting.
Kayla Sprint, 18, was interviewing for a job at a clothing store when she heard shots.
"We heard people running back here screaming, yelling '911,'" she told The Associated Press.
Sprint barricaded herself in the store's back room until the coast was clear.
Jason DeCosta, a manager of a window-tinting company that has a display on the mall's ground floor, said when he arrived to relieve his co-worker, he heard shots ring out upstairs.
DeCosta ran up an escalator, past people who had dropped for cover and glass littering the floor.
"I figure if he's shooting a gun, he's gonna run out of bullets," DeCosta said, "and I'm gonna take him."
DeCosta said when he got to the food court, "I saw a gentleman face down, obviously shot in the head."
"A lot of blood," DeCosta said. "You could tell there was nothing you could do for him."
He said he also saw a woman on the floor who had been shot in the chest.
Austin Patty, 20, who works at Macy's, said he saw a man in a white mask carrying a rifle and wearing a bulletproof vest. There was a series of rapid-fire shots in short succession as Christmas music played. Patty said he dove for the floor and then ran.
His Macy's co-worker, Pam Moore, told the AP the gunman was short, with dark hair.
Kira Rowland told KGW-TV that she was shopping at Macy's with her infant son when the shots started.
"All of a sudden you hear two shots, which sounded like balloons popping," Rowland told the station. "Everybody got on the ground. I grabbed the baby from the stroller and got on the ground."
Rowland said she heard people screaming and crying.
"I put the baby back in the stroller and ran," Rowland said.
Kaelynn Keelin was working two stores down from Macy's when the gunfire began. She watched windows of another store get shot out. She and her co-workers ran to get customers inside their own store to take shelter.
"If we would have run out, we would have run right into it," she said.
Shaun Wik, 20, was Christmas shopping with his girlfriend and opened a fortune cookie at the food court. Inside was written: "Live for today. Remember yesterday. Think of tomorrow."
As he read it, he heard three shots. He heard a man he believes was the gunman shout, "Get down!" but Wik and his girlfriend ran. He heard seven or eight more shots. He didn't turn around.
"If I had looked back, I might not be standing here," Wik said. "I might have been one of the ones who got hit."
Clackamas Town Center is one of the Portland area's biggest and busiest malls, with 185 stores and a 20-screen movie theater.
Holli Bautista, 28, was shopping at Macy's for a Christmas dress for her daughter when she heard pops that sounded like firecrackers. "I heard people running and screaming and saying 'Get out, there's somebody shooting,'" she told the AP.
She said hundreds of shoppers and mall employees started running, and she and dozens of other people were trying to escape through a department store exit.
Tiffany Turgetto and her husband were leaving Macy's through the first floor when they heard gunshots coming from the second floor of the mall. They were able to leave quickly through a Barnes & Noble bookstore before the police locked down the mall.
"I had left my phone at home. I was telling people to call 911. Surprisingly, people are around me, no one was calling 911. I think people were in shock," she said.
Associated Press writers Nigel Duara in Portland, Michelle Price in Phoenix, Pete Yost in Washington and Manuel Valdes in Seattle contributed to this report.