"When he (Stafford) got out of his car the guy (Keeler) just unloaded, just started shooting at him," said witness Robin Combs, who was one of several neighborhood residents to called 911.
"The officer ducked behind a car and the bullet went through and grazed his head. I heard him holler he was shot, he was shot, then he said 'I need a towel,' " said Combs.
Wounded, the firearms instructor and 16-year veteran of the Hamilton Police Department returned fire, striking Keeler dead with multiple gunshots.
Combs said she held Stafford in her arms, pressing a towel to his wounded head until additional officers and paramedics arrived on the scene. "I told him, 'calm down it would be all right.' I was just scared, I thought he was going to die right there. Just told him to 'calm down, it'll be all right,' " said Combs.
Stafford was taken to Butler County Airport, then flown by Air Care medical helicopter to the University Hospital in Cincinnati. He was stitched up and released later Saturday to his wife and two children, said Hamilton police Chief Scott Scrimizzi. The bullet that struck Stafford only grazed the top of his head, he said.
"If he was hit within another inch, the officer could've been killed," said Scrimizzi. "Thank God the round was an inch higher than what it was. ... We're extremely grateful that he survived this," said the chief, who described Stafford as a
"very passionate traffic officer, good guy, good officer."
A supervisor picked up Stafford's wife and took her to the hospital. Off-duty officers also visited Stafford in the hospital and offered their support, the chief said.
'Guy with a gun'
Butler County dispatchers logged four 911 calls around 7:07 a.m. from neighbors reporting gunshots.
"I am calling about the guy with a gun," said one woman. "Big, tall guy carrying a big gun with a banana clip and he is shooting at everything."
Another woman said in a 911 call that "(There's) a lot of gun fire going off. He's walking up and down the street carrying a gun shooting it. Real tall guy, light tan jacket."
Stafford was the first officer to respond, reporting to dispatchers he found the suspect along Sipple Avenue.
"I am shot in the head, send me a medic," said Stafford, moments after stating he saw the man with a rifle, according to scanner traffic. Then, Stafford said: "suspect down, shots fired. I need a medic."
Officers and paramedics descended on the scene en mass.
"Several rounds were fired at the officer first," said Scrimizzi. "The officer was hit before he returned fire. After being hit he fired at least two rounds from his service weapon, striking the suspect."
Next to Keeler's body at the scene, police found a rifle. Keeler, listed as 6 feet, 4 inches tall and weighing 200 pounds, also was armed with a handgun, according to police.
"Our hearts and prayers go out to the family as well," said Scrimizzi, who called Keeler's death a "tragedy."
Keeler, of the 1100 block of Southern Hills Boulevard, had no adult record, according to police, but did have two juvenile incidents. A motive for the shooting is not known.
An autopsy is scheduled for Monday at the Butler County Morgue, according to Clint Nigg, county coroner's investigator.
Scrimizzi credits training for saving the officer's life and residents in the neighborhood. "Our officer is safe and the training he gets ... he was able to stop the threat that somebody was trying to kill him, I'm extremely proud of him," he said.
"One of the witness said it was amazing, the officer was bleeding from the forehead ... had blood pouring down his face, yet never took his eyes off the suspect until additional officers got there," said Scrimizzi.
'A quiet neighborhood'
Combs said she's grateful Stafford risked his life to keep everyone in her neighborhood safe, and that she was worried about a stray bullet hitting someone inside their home.
"This is a quiet neighborhood, we got all kinds of kids around here, if it was later in the day and kids around here they could've been shot," said Combs.
Other neighbors also feared for their lives.
"I thought I heard some gunshots a little before 7 a.m. but I didn't know for sure," said Joseph Vaughn of 11th Street. "I didn't know what to do or think. I thought it was strange someone shooting a gun. A few minutes later I heard the sirens.
"It's pretty scary that something happened like that," he said. "I wondered if it was someone who lived around here or just someone, a random person that went off."
"Everything has been pretty peaceful around here," said Vaughn who has lived in the neighborhood for more than 30 years. "I can't remember something like this ever happening before."
Butler County Prosecutor Michael Gmoser was contacted shortly after the shooting Saturday morning by Hamilton police.
Gmoser said he expects the findings of the investigation being conducted by HPD to be presented to a grand jury perhaps as early as next week.
When Gmoser took office, he informed all police agencies that any officer-involved shooting would be reviewed by a grand jury.
This is the second officer-involved shooting in Butler County in less than a month. A Fairfield officer shot and killed a 23-year-old man on Jan. 18
In 2012, the latest statistics available, 16 Hamilton officers were assaulted in the line of duty, according to the Hamilton Police Department's annual report. Nationally, 2,259 police officers were reported injured by firearms in 2012, according to the FBI.
Three police officers have been killed in the line of duty since Jan. 1 in the U.S. In 2013, 111 officers (one in Ohio) were killed, including 33 by gunfire, according to the National Law Enforcement Officers Memorial Fund.
The 2013 number of deaths was the lowest since 1959 when 110 were killed.
The last Hamilton police officer killed in the line of duty was Patrolman Aaron Lauback. He was killed in January 1938 during a gas station hold up, according to Hamilton police. The last officer-involved shooting in Hamilton was April 25, 2010.
Staff Writer Ed Richter contributed to this report.