The shooting happened just after 9 a.m. local time at a 30-story building home to the corporate headquarters for regional banker Fifth Third Bancorp and other businesses, including popular ice cream, pastry and sandwich shops. The bank building was locked down for most of the morning, and the usually crowded surrounding streets and sidewalks were closed off.
Gilbane Building Company said one of its employees, 64-year-old Richard Newcomer, was killed in the shooting. Newcomer had worked for the construction company for three years, according to director of communication Wes Cotter.
The Hamilton County Coroner's Office identified Prudhvi Kandepi, 25, and Luis Felipe Calderón, 48, as the two other victims.
Cincinnati Mayor John Cranley said the gunman was "actively shooting innocent victims" and that it was a "horrific" scene. Police later identified the suspect as 29-year-old Omar Enrique Perez. Perez, a Cincinnati-area resident since 2015, wasn't a current or past Fifth Third employee, according to police.
Police Chief Eliot Isaac said the killer used a 9 mm handgun and was carrying magazines with some 200 rounds of ammunition. Investigators have yet to determine what motivated the attack.
Isaac said the shooter opened fire early Thursday morning at the loading dock of the bank. People were sent scrambling amid cries of "shooter." Isaac said the gunman then entered the bank's lobby, where 3-4 officers engaged with the suspect. It's unclear if the gunman shot himself or was shot by officers.
The officers responded within seconds, Cranley said, adding that the shooting "could have been much, much worse." No officers were injured, Isaac said.
The other victims have not been identified.
UC Health wrote on Twitter that the medical center had received four gunshot wound victims. Two of those victims are among the deceased, one is in critical condition and one is in serious condition.
The bank posted on Twitter to say there is no longer a threat and that their thoughts are with those affected.
ABC News and the Associated Press contributed to this report.
Note: A previous version of this story misspelled the name of one of the victims based on previous information released by a coroner. It is Prudhvi Kandepi, not Pruthvi.