The suspect was identified as Jonathan Oddi, 42, of Doral, Florida. Oddi is in stable condition after police shot him in an exchange of gunfire, Perez said. A Doral police officer suffered broken bones but was not shot, the official said.
The gunman took a flag from a pole in the rear of the complex, brought it into the hotel lobby, draped it over a counter, yelled rhetoric against President Donald Trump and fired a gun into the air -- at the roof and chandeliers, Perez said.
He then "waited for officers to engage him," Perez said.
Perez said the man's immediate motive seemed to be to lure police into a gunfight.
"He did succeed (in luring police), and he did lose," Perez said. Five officers fired at the suspect.
Perez said it's too early to tell what the suspect's motive was. "We are not saying this is terrorism. ... We are not discounting anything at this point," he said. "We still have a lot of work to do."
The President's son Eric Trump applauded Doral and Miami-Dade officers.
"Every day they keep our community safe. We are very grateful to you!" he said.
An investigation is underway, and will include the FBI, the Secret Service and local police.
No one under Secret Service protection was in the Miami area at the time of the shooting, a Secret Service representative said.
The Trump National Doral Golf Club, an 800-acre resort outside Miami, is a former host of PGA Tour and World Golf Championship events.
CNN's Abby Phillip contributed to this report.