A male student has been taken into custody, according to the San Diego County sheriff's department.
While authorities would not confirm the identity of the suspect, student eyewitnesses at Santana High School in Santee, Calif., told Fox News the gunman was a male freshman student.
Authorities confirmed that one victim died on the scene. A hospital spokeswoman said a 15-year-old male student was the second fatality. The remaining victims were reportedly in stable condition, KGTV said. Two of the victims may be adult staff members.
A sheriff's deputy who was reported wounded was injured during an unrelated incident, officials said.
Santana student John Schardt, 17, told KFMB that he heard shots ring out at about 9:20 a.m. while he was in a nearby classroom, and that he took video footage of the shooter. The police confiscated Schardt's tape.
"I looked at the kid, and he was smiling and shooting his weapon," said Schardt. "Everyone was running away ... I saw one student go down. He was lying in the middle of the quad."
The gunman, upon emptying his long-barreled pistol, went into the men's bathroom to reload and came back out firing, according to Schardt.
Schardt did not know the gunman's name, but had seen him in school previously.
Andrew Kaforey, a 17-year-old Santana senior, said he ran into the bathroom with a security guard after hearing what sounded like a firecracker or a gunshot.
"He pointed the gun right at me but he didn't shoot," Kaforey said. As he and the guard ran out, the gunman shot the guard in the back, Kaforey said.
Kaforey's 14-year-old brother, Jacob, said a boy they believe was the gunman had talked earlier about how he owned a gun, although other students hadn't seen the weapon. The boy also had talked about stealing a car and going to Mexico, Jacob said.
Chris Reynolds, an adult who knows the alleged shooter, said the boy had been talking last week about shooting people, but assured his friends and Reynolds that he wasn't serious.
"Everybody can't believe that he actually did it," Reynolds told KGTV. "He said he was just joking."
"I do regret that I didn't do something because I should've stepped up even if it wasn't true and stuff to take that precaution," Reynolds said. "If someone did die over there and stuff that's going to be haunting me for a long time, that's going to be with me for a long time. It just hurts because I could've maybe done something about it."
Reynolds described the shooter as the type of boy who was picked on at school, and said one of the boy's friends even checked the shooter's knapsack Monday morning to make sure it did not contain a weapon.
George Oriotis, owner of the Round Table Pizza restaurant across the street from the school, reported that students were being directed to his restaurant to await pickup by their parents.
Student Rachelle Ackerman told reporters that about three minutes before the bell was scheduled to ring, she heard the gunfire. "I ran into the office. I started yelling, 'Gun! Call 911! Someone's been shot."'
About an hour after the shooting a SWAT team was conducting a sweep of the shooting, and a bomb unit was preparing to do the same "as a precaution," Reina said.
"It sounded like fireworks, or a popgun ... then you just heard people yell 'run' and I started running," said Pam Hanson, 16, a junior.
Student Alicia Zimmer saw a boy lying face down on the floor, a girl with blood on her arm and another with blood on her hands, she told KGTV.
She said she heard shots but didn't see a shooter. "They sounded more like a capgun," she said of the noise.
"I dropped my stuff; it's still there right in the middle of the hall. It was really scary," she said.
Several students cried as they left the school.
"I just heard the shots and students were running and running. I thought it was a joke or something," said Ruben Martinez, senior, 18.
Martinez's mother came to get him in the parking lot, leaving her job at an electronics plant in nearby Sorrento Valley, where a co-worker had heard about it on radio.
"I just had to leave right away and see if he was OK," Sylvia Martinez said.
Santana High School opened its doors to students for the first time on Sept. 20, 1965. It serves more that 1,900 students in grades nine through twelve.