The accident took place around 11 am (local time) on the Rangpur-Dinajpur Highway in Taraganj Upazila, police said.
Taraganj police officer Abdul Latif and Rangpur Fire Service's Rescue Officer Abdul Aziz confirmed 12 people dead in the crash.
"The crash left 10 people dead on the spot," Latif told bdnews24.Com.
He said a Rangpur-bound bus from Dinajpur crashed into another bus, which was heading to Dinajpur from Sylhet.
Two others died after being taken to the Rangpur Medical College Hospital, said the hospital's Director ASM Barkat Ullah.
Also Read
In a major head-on collision between two passenger buses in northern Bangladesh.
Bangladesh has one of the highest rates of road accidents in the world, with more than 85 deaths for every 10,000 registered motor vehicles. More than 4,000 people die on Bangladesh's roads every year.
According to the World Health Organisation (WHO), road traffic injuries cause a loss of about 2 per cent of GDP in Bangladesh, or about 1.2 billion pounds annually.