Three of the injured were in serious condition after the bus crashed at around 3:10 am (0110 GMT) during heavy rain, an emergency services spokesman said.
It is understand the Eros Bus Travel coach was carrying holidaymakers from the resort of Lloret de Mar to the airport when it crashed.
The coach was travelling on a ring road near the waterfront as it made its way to El Prat airport, and all of the victims were taken to hospitals across the city.
— SER CATALUNYA (@SERCatalunya) September 14, 2016
Among the injured were five Spaniards, two Germans, seven Britons, two Irish, three tourists from Belarus and one from Poland. The driver was among those injured.
Fifteen sustained light injuries, while six were said to be in moderate condition. Health authorities said none of the injuries were life threatening.
Police confirmed that the driver had tested negative to alcohol and drugs in his system.