Police found the gunman dead in the nursing home in Kirkersville, a village of about 500 people about 20 miles east of downtown Columbus, authorities said.
It wasn't immediately clear whether the gunman killed himself, Licking County Sheriff Randy Thorp said. There was no exchange of gunfire with officers, Thorp said
The sheriff said he didn't know the motive for the shootings, or whether the gunman knew any of the slain.
Kirkersville Police Chief Steven Eric Disario, 36, was responding to a report about a man in a street with a firearm when he saw the gunman in an alley behind Pine Kirk Care Center
nursing home shortly before 8 a.m., Thorp said.
"I believe the last radio transmission we had from (Disario) was that he had the subject in sight," Thorp said.
Investigators believe the gunman shot Disario, went into the nursing home and fatally shot two workers, according to the sheriff.
Sheriff's deputies arriving to back up Disario found the chief shot in the alley, Thorp said. When they entered the nursing home, the gunman and the workers were dead, he said.
The names of the gunman and the slain nursing home employees weren't immediately released.
Ohio Attorney General Mike DeWine said the suspect was from Utica, about 25 miles north of Kirkersville, and that his vehicle was discovered at a nearby truck stop.
DeWine said the suspect first took two people hostage behind the nursing home, apparently to keep them from revealing his presence. After the gunman shot the police chief, the two hostages ran away and were not harmed, DeWine said.
Police found some of the home's 23 residents hiding in the building, Thorp said.
None of the residents was injured. They were transferred to various hospitals Friday morning so that police could process the crime scene; it wasn't immediately clear when they would be allowed to return.
Disario was a father of six children and was expecting a seventh, said Thorp, who added that he did not know the chief.
Gov. John Kasich said on Twitter that he was pained by news of the shooting.
"Ohio mourns the loss of Kirkersville Chief Eric Disario, who died in the line of duty," Kasich tweeted. He ordered flag flown at half-staff through sunset of May 16.