Seven people were taken to hospitals for treatment. The accident happened around 2am local time.
North Macedonia's chief prosecutor, Lubomir Jovevski, who visited the scene of the accident, said that 12 children were confirmed among the dead.
The cause of the crash was not immediately confirmed, but it appeared that the bus hit a highway guard rail, crashed and caught fire.
The bus was one of four traveling together. Officials said an investigation will be launched.
Photos taken shortly after the crash showed the bus engulfed in flames with plumes of thick, black smoke rising from the scene.
Daylight revealed the burned-out bus, its windows all broken, charred and gutted, sitting upright against the median barrier.
Interior Minister Boyko Rashkov told reporters at the crash site that he had "never in my life seen something more horrifying."
"The picture is horrifying, the people who were on the bus are turned to charcoal," Rashkov said.
"It is impossible to say how many they were. There were four buses that traveled together, and it is possible that passengers changed buses during the stops."
Media in North Macedonia, a country of about two million people, reported that police were outside the Skopje offices of a travel company that is believed to have organised the trip to Turkey.
Bulgarian Caretaker Prime Minister Stefan Yanev, who also visited the site of the crash, told reporters it was "a huge tragedy."
"I take this opportunity to send my condolences to the relatives of the victims," Yanev said. "Let's hope we learn lessons from this tragic incident and we can prevent such incidents in the future."
Albanian Foreign Minister Olta Xhacka wrote online that almost all of those who died in the crash were ethnic Albanians.
North Macedonia's prime minister, Zoran Zaev, told Bulgarian television channel bTV that he had spoken to one of the bus survivors.
"One of the passengers told me that he was asleep and woke up from an explosion," Zaev told bTV, adding that the authorities will gather information that is "important for the families of the dead and the survivors."
Zaev later arrived in Bulgaria to visit the survivors in the hospital in person.
European Commission President Ursula von der Leyen expressed her condolences to the families and friends of those who died in the "tragic bus accident" and said that "in these terrible times, Europe stands in solidarity with you."
In 2019, Bulgaria, an EU nation of 7 million, had the second-highest road fatality rate in the 27-nation bloc with 89 people killed per million population, according to European Commission data.