Most of those killed were Shia Muslims. After the blast, an angry crowd threw stones at police and blocked roads with burning tyres near the scene of the attack.
A purported spokesman of the Sunni extremist group Lashkar-e-Jhangvi Alalmi (LJA) claimed responsibility for the suicide attack.
The spokesman, who identified himself as Usman Haider, told local reporters in Kohat that the strike was carried out to avenge the murder of its leader Maulana Amin.
The LJA is allied with Taliban militants based in Pakistan's restive tribal region, which is located close to Kohat district.
The two groups cooperated in carrying out several attacks on Shia mosques and businesses in Kohat and nearby districts.
The Taliban last year briefly seized a strategic tunnel outside the town on the Indus Highway that connects North West Frontier Province with central Pakistan and is used to transport NATO supplies from the southern port city of Karachi to landlocked Afghanistan.
The interior ministry said early this week that the Taliban had intensified attacks across the country to revenge the death of their chief Baitullah Mehsud in a US drone attack last month.
The Taliban have chosen Hakimullah Mehsud, who is from the same tribe, as his successor. Hakimullah was formerly associated with Lashkar-e-Jhangvi and is believed to have ordered dozens of brutal attacks on Shia Muslims.