"When deputies arrived on scene, they immediately found two deceased persons and one critically injured person," Kings County Sheriff Dave Robinson said in a press conference Sunday.
WATCH: Kings County Sheriff David Robinson gives updates on deadly Hanford shooting
Detectives say Ramiro Trevino Jr., a welfare fraud investigator, got in a violent argument with his girlfriend.
His father and his friend, police officer Jonathan Diaz, stepped in to get the woman to safety.
"It appeared the two victims were really trying to stop what was occurring," Robinson said.
The two were able to get the girlfriend out of the home, but when they tried to cool him off, Trevino, Jr. armed himself with more than one gun.
"They definitely put their lives on the line to try to defuse the situation," Robinson said.
Trevino Jr. opened fire on his father and Diaz. Neighbor Julio Arevalo heard the gunshots.
"I heard three shots, but I didn't know they were shots at the time. I thought they were fireworks," Arevalo said.
The victims were shot multiple times. Diaz died at the scene, and Trevino's 58-year-old father was left in critical condition.
The suspect then turned the gun on himself, taking his own life.
"I stepped outside, I looked, and that's when I saw a body on the floor, and I was like, 'What just happened,'" Arevalo said.
Officers recovered three firearms, including a semi-automatic rifle and two handguns.
"Based on evidence at the scene, it does appear that the rifle was fired at least once and at least one of the handguns was fired," Robinson said.
Diaz leaves behind two children. Last year, he was honored as Lemoore's Public Safety Award recipient of the year.
"Our heart goes out to his kids and all the families involved, because this is an absolute tragedy," Robinson said.
Investigators say that Trevino was drinking, but are pending a toxicology report to determine how much. His girlfriend was not injured.