About an hour after the hijacking began, police tried to negotiate with the hijacker. When that failed, they fired at least three shots at him, according to a police spokesman.
The authorities were uncertain whether the suspect was shot on the bus or as he was getting off it in front of a restaurant in Miami Beach.
Television showed police swarming around the front door of the bus and then dragging the suspect away.
Two restaurant workers said the hijacker had worked as a waiter at the restaurant, but left on Wednesday night apparently because of the tax dispute.
The hijacker told police he had a bomb and threatened to blow up the bus.Police said they found afterwards that the device strapped to the man's body was not a bomb.
The Dade County schools superintendent, Octavio Visiedo, said 11 pupils were on the bus, with the bus driver and an aide. The school bus was on the way to Blue Lakes Elementary School in Miami when it was commandeered in south-west Dade County.
Police then surrounded the hijacked bus as it travelled from south-west Miami towards the town centre. News helicopters followed and the chase was broadcast live on national television.
During the hijacking, the bus driver kept in radio contact with authorities and passed on the hijacker's demands.
"The bus driver frankly was a hero", Mr Visiedo said. "She never panicked."
The bus finally stopped outside the restaurant, where the hijacker said he wanted to eat lunch. While police tried to negotiate, the bus started moving again slowly and stopped. The suspect was then shot.Reuse content