The attack was reported to have targeted a convoy of military vehicles as it passed close to a crowded market in Alpuri, Shangla district, not far from the town of Mingora.
"Thirty-two people have been killed - 28 of them are civilians and four are security personnel," said Major Mushtaq Khan, a spokesman at the army-run Swat Media Centre.
"It was a suicide blast. The attacker was on foot."
The bomber targeted the convoy as it passed through a security checkpost near a crowded bazaar, hitting both a military target and maximising civilian casualties.
The attack is just the latest in a string of Taliban blasts in recent weeks that have left dozens of civilians dead.
It followed air strikes against Taliban camps in the previous 24 hours which were a response to the storming and siege of the Pakistan army's headquarters in Rawalpindi at the weekend.