A bus carrying more than 30 people hit a concrete overpass at Miami International Airport, killing two people on board and leaving three others critically injured, officials said on Saturday.

The large, white bus was too tall for the 8-foot-6-inch (2.6 metre) entrance to the arrivals area.

Police said the driver was not familiar with the area and entered the airport by mistake before smashing into the concrete overhang.

Three people were taken to hospital in critical condition following the accident.

The other 27 passengers had been hurt, but their injuries were less extensive, authorities said.

Osvaldo Lopez, an officer with Miami-Dade aviation, said he went inside the bus to help and found several passengers thrown into the centre aisle.

He said the passengers, many of whom were elderly, remained calm after the wreck.

"It was just very bloody," he said of the scene.

After helping the passengers, Lopez suffered some injuries of his own - his left arm and a finger on his right hand were both bandaged.

The body of one dead passenger was pulled from the bus late on Saturday morning; the second person died after being taken to a hospital, police said.

Airport spokesman Greg Chin said buses were supposed to go through the departures area, which has a higher ceiling.

Two large signs warn drivers of large vehicles not to enter beneath the concrete overpass.

One attached to the top of the concrete barrier reads: "High Vehicle STOP Turn Left."

The other, placed to the left of the driveway several feet in front of the barrier, says all vehicles higher than the 8-foot-6 threshold must turn left.