The gunman was reloading a shotgun when the student, working as a building monitor, used pepper spray and knocked him down, Police Capt. Chris Fowler told reporters.
"Once on the ground, other students jumped on top of them and subdued the shooter," he said.
The suspect, whose identity was not immediately released, is in custody, police said.
The shooting began inside the foyer of Otto Miller Hall, which houses the university's science, math and engineering departments, when the gunman confronted three people and shot them, Fowler said.
A 20-year-old man was declared dead at Harborview Medical Center, hospital spokeswoman Leila Grey said. A 20-year-old woman was in critical condition and 24-year-old man was in satisfactory condition, she said. A fourth person was hospitalized for emotional trauma, she said.
Briana Clarke told CNN she was in Otto Miller Hall when she heard two loud but muffled shots that sounded like "helium balloons popping."
"I thought it was another one of my professors that was giving a demonstration," she said.
"I walked into the hallway and saw a classmate of mine running frantically, saying that someone had been shot."
Student Blake Oliveria was in a classroom when he heard the gunshots.
He said he removed his shoes in case he had to run but stayed in the classroom until police arrived to escort students out.
"I saw blood ... on the ground," he told CNN. "There were two or three big (pools) and some small ones scattered throughout the hallway."
The school was locked down during the shooting, and the lockdown was lifted after police cleared all the buildings on the campus.
Seattle Pacific is a Christian university with a student population of 4,270. It is located in Seattle's Queen Anne neighborhood.
Read more on our Seattle affiliate's website, and watch their livestream, here.