The incident in Balkh province comes as the militant group steps up attacks across the country in the fifteenth year of its insurgency against the Western-backed government in Kabul.
The defence ministry said three soldiers died and eight were wounded in the blast, which occurred in a relatively stable region.
A spokesman for the provincial governor, Munir Ahmad Farhad, said the bomber ran towards the bus as it slowed down for a speed bump in Dehdadi, a district close to the provincial capital Mazar-i-Sharif.
The Taliban, whose hardline regime was toppled by a US-led coalition in 2001, later claimed responsibility.
The group have stepped up their campaign against government and foreign targets in Afghanistan this winter, when fighting usually abates, underscoring a worsening security situation.
Afghan security forces have suffered record casualties since NATO ended its combat mission in December 2014, leaving them to battle the resurgent Taliban largely on their own.
At least 20 Afghan policemen were killed on February 1 when a suicide bomber struck outside their base in the capital Kabul.
With neither side in the conflict seemingly able to achieve a decisive victory, the Afghan government, regional powers and the United States have pinned their hopes on a peace settlement.
On Saturday representatives from Afghanistan, Pakistan, China and the US announced that direct talks between Kabul and the Taliban were expected to take place by the end of the month, indicating the insurgent group are willing to return to negotiations six months after an earlier round of dialogue collapsed.