The bus, carrying 24 passengers, was travelling to Barcelona city airport from the Costa Brava resort of Lloret de Mar.
It flipped onto its side by an industrial park just after 3am this morning.
A spokesman for a local emergency services coordination centre said: “Three are serious. There were Irish, British, German, Polish, Lithuanian and Belarusian nationals on the bus.”
Seven ambulances took the injured parties, including the driver, to the hospital.
While most casualties suffered only light injuries, three were seriously injured.
The nationalities of the seriously injured are unknown.
Heavy rain was initially blamed for the incident, leading the ring road to be closed for two hours.