The bus was travelling through Dahyan market in Saada province at the time.
The health ministry run by the rebel Houthi movement said 43 people were killed. The Red Cross said most of the victims were under the age of 10.
The coalition, which is backing Yemen’s government in a war with the Houthis, said its actions were “legitimate”.
It insists it never deliberately targets civilians, but human rights groups have accused it of bombing markets, schools, hospitals and residential areas.
What happened in Saada?
Yemeni tribal elders told the Associated Press that the bus was hit as it passed through the Dahyan market and that it was transporting local civilians, including many school children.
The International Committee of the Red Cross (ICRC) said a hospital it supported in Saada had received dozens of casualties on Thursday after the attack.
The head of the humanitarian organisation’s delegation in the country, Johannes Bruwer, later tweeted that “scores” had been killed and “even more injured, most under the age of 10”.
He said additional supplies were being sent to hospitals to cope with the influx.
Houthi-run Al-Masirah TV reported that 47 people were killed and 77 wounded, and broadcast graphic pictures showing the bodies of several young children, some of them wearing school uniform.
What has been the reaction?
Houthi spokesman Mohammed Abdul-Salam accused the coalition of showing “clear disregard for civilian life” by targeting a crowded public place.
The ICRC stressed that “under international humanitarian law, civilians must be protected during conflict”, while the secretary-general of the Norwegian Refugee Council Jan Egeland called it a “grotesque, shameful” attack that showed “blatant disregard for rules of war”.
It was not immediately clear whether the bus was the target of the air strike, but coalition spokesman Col Turki al-Malki said the attack was “a legitimate military action, conducted in conformity with international humanitarian law”.
He said it had hit “militants responsible for planning and targeting civilians” in the southern Saudi city of Jazan on Wednesday night, where one Yemeni resident was killed and 11 others were injured by fragments from an intercepted ballistic missile that was launched by the Houthis from neighbouring Amran province.
He accused the rebels of using children as “tools and covers for their terrorist acts”.
Later, air strikes were reported in the rebel-held Yemeni capital, Sanaa.
A week ago, at least 55 civilians were killed and 170 others wounded in a series of attacks on the rebel-held Red Sea port city of Hudaydah. The coalition denied that it had carried out air strikes in the area, and blamed the deaths on rebel mortar fire.
Why is there a war in Yemen?
Yemen has been devastated by a conflict that escalated in early 2015, when the Houthis seized control of much of the west of the country and forced President Abdrabbuh Mansour Hadi to flee abroad.
Alarmed by the rise of a group they saw as an Iranian proxy, the UAE, Saudi Arabia and seven other Arab states intervened in an attempt to restore the government.
Almost 10,000 people – two-thirds of them civilians – have been killed and 55,000 others injured in the fighting, according to the United Nations.
The fighting and a partial blockade by the coalition has also left 22 million people in need of humanitarian aid, created the world’s largest food security emergency, and led to a cholera outbreak that is thought to have affected a million people.