The gunman and the dead woman apparently had a "relationship," Tualatin Police Chief Kent Barker said. He did not elaborate.
No names were released. However, Barker said the injured workers were a 20-year-old woman and a 63-year-old man.
"There were people running all over the place when the officers first responded," Barker said. "It was pretty chaotic at first."
The 63-year-old man was flown to Oregon Health & Science University hospital in Portland, where he was in surgery for a gunshot wound, police said.
The wounded woman did not have life-threatening injuries and was taken by ambulance to Legacy Emanuel Hospital in Portland. It was not clear whether she had been shot.
Witnesses said a woman in a bloodied lab coat ran into a nearby Subway sandwich shop after the shooting.
Alina Kurtavenao, who works at the Subway, said the woman had blood on a leg and on her forehead.
"She wasn't crying, she wasn't scared," Kurtavenao said, adding the woman appeared to be in shock.
The gunman fired shots outside the lab and then fired more inside, Barker said. He was found dead inside the building.
Other businesses in the area included a framing store, a bank and a locksmith. The office mall was evacuated when police arrived.
Legacy MetroLab conducts drug and alcohol testing for employers and others, company spokeswoman Kathleen Gorman said.
"There were probably six people working there," said Travis Bonser, a teller at a Chase Bank across the street. "It's just a regular lab."
With about 26,000 residents, Tualatin (pronounced too-ALL-a-tin) is a middle-class community about 13 miles south of Portland. It is also the site of the practice facility for the Portland Trail Blazers.