The attack comes two weeks after Al-Shabaab, which has waged a long insurgency against the Somali state, besieged a hotel in the capital Mogadishu for 30 hours, leaving 21 people dead and 117 injured.
Sources said at least eight vehicles were travelling between the towns of Beledweyne and Maxaas when the insurgents intercepted and burned them and killed the passengers overnight Friday to Saturday by Afar-Irdood village.
"The terrorists massacred innocent civilians who were travelling... last night. We don't have the exact number of victims, but 19 dead bodies have been collected," local clan elder Abdulahi Hared told AFP.
"The dead bodies are still being collected, including women and children. They could be more than 20," said Ali Jeyte, the governor of the Hiiraan region where the attack happened.
"This was a horrible attack that has never happened in our region. These were innocent civilians who did nothing to deserve this," added another local clan leader, Mohamed Abdirahman.
Al-Shabaab in a statement said they targeted fighters from a local sub-clan that recently helped government forces and that they killed 20 "militiamen and those who were transporting material for them", destroying nine of their vehicles.
Local fighters and the security forces recaptured several villages from Al-Shabaab in the region in late August.
President Hassan Sheikh Mohamud "strongly condemns the despicable acts of murder against innocent civilians", the Somali presidency said on Twitter.
"The President underscored that his government will leave no stone unturned in the fight against terrorism in Somalia and the region."
Ali Gudlawe, president of Hirshabelle state where the attack took place, released a statement offering condolences to the victims' loved ones and promising to continue "operations to cleanse" the region of Al-Shabaab.
"The only way we have is to be united to fight and liberate our country from them. I call upon the society not to be discouraged," said his counterpart in Jubaland state, Ahmed Madobe.