The teen shooter entered Silver Rail Elementary by shooting through locked doors, police said, without offering any further details.
The children killed were aged five, eight and 11.
Another child and teacher were injured and taken to the hospital, Bend Police Chief Mike Krantz told a press conference.
Police first received a call from person in a vehicle outside the school who reported being shot at by someone with a long gun, Krantz said.
Further emergency calls came from inside the school, police spokesperson Sheila Miller said. Police arrived on scene within minutes.
Miller told reporters investigators had yet to confirm who shot the suspect.
Oregon Governor Tina Kotek, appearing at the same briefing, thanked the community member who "heroically intervened to stop further loss of life."
"No parent should have to have this kind of day, and no community should have to live through this kind of day, and as we learn more about the children and the adults who have been killed or injured, and their families and their loved ones, we are going to do a lot of crying, and we are going to cry together, and we're probably going to cry privately," Kotek said.
Krantz said the community member, whom he did not identify, had seen the suspect enter the school and pursued him.
The shooting took place in Bend, a city of about 100,000 residents in rural central Oregon.
Silver Rail Elementary remained under lockdown, the Bend-La Pine school district said on Facebook.
Silver Rail Elementary School serves grades kindergarten through fifth grade, roughly ages five to 11. It has about 450 students and 40 staff members.
Gun violence is a persistent problem in the United States, with tens of thousands of victims each year. Handguns and higher-calibre firearms are readily accessible and in circulation by the millions.
According to a CNN analysis, there have been at least 52 shootings at schools in the US so far this year, leaving at least 28 people dead and 48 others injured.
with AP an DPA