At least 49 people were injured in the attack, the AFP news agency reported.
Earlier on Monday, two drivers of lorries transporting supplies to Western forces in Afghanistan were killed in a grenade and gun attack near the Pakistani city of Peshawar, a transport company official said.
The lorries were parked at a terminal on the outskirts of Peshawar when the fighters fired rocket-propelled grenades at them, setting some of them on fire, police said.
"When the fire was raging, the attackers started firing and two drivers were killed," Mohammad Haroon, an official of Al-Faisal Cargo, a private company involved in taking supplies to Afghanistan, told the Reuters news agency.
Fighters in Pakistan have stepped up attacks on supplies going through northwest Pakistan's Khyber Pass, a vital supply link for foreign troops in landlocked Afghanistan.
The US military sends 75 per cent of supplies for the Afghan war through or over Pakistan, including 40 per cent of the fuel for its troops, the US defence department says.
There are only two major routes into Afghanistan from the Pakistani port of Karachi, one through the Khyber Pass and the other through the town of Chaman to the southwest, the gateway to the southern Afghan city of Kandahar.
Pakistani authorities halted movement of supplies through the Khyber Pass for a week in November after fighters hijacked 13 lorries carrying supplies for Western forces.