The cause of the incident, near the town of Slavonski Brod, was not immediately clear.
The crash happened around 6am on Sunday on the A3 motorway that runs between Zagreb, the Croatian capital, and the Serbian border.
Photos from the scene show the bus on its side near the edge of the road, with emergency workers around the vehicle, as traffic on the highway was stopped.
Local police said that the bus, which had Kosovo licence plates, was on a regular route from Frankfurt, Germany to Pristina, the Kosovoan capital city. The bus was travelling through Croatia and Serbia to reach its destination.
Slavonski Brod Traffic Police Chief Franjo Galic said that the bus was full, with more than 60 passengers on board.
He said the crash was “one of the worst accidents” he had ever seen.
Those injured in the accident were taken to a hospital in Slavonski Brod, where hospital chief Josip Samardzic confirmed that eight people were being treated for serious injuries.
The Croatian prime minister, Andrej Plenković described the crash as a “terrible accident”.
He took to Twitter to express his “sadness and grief” and extend his condolences to the relatives of those who died in the crash and to the people of Kosovo.
“We hope the injured passengers will recover,” he said.
He added that the health minister and the director general of the civil protection directorate were on their way to the scene of the crash.
Croatia’s minister of the interior, Davor Božinović tweeted: “I express my deep condolences to the families of those killed in the serious traffic accident that took place this morning near Slavonski Brod”.
He wished also wished “speedy recovery” for those injured.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies