"Four more people died of their wounds at the Hayatabad Medical Complex overnight, raising the death toll in the attack to 21," doctor Sohail Ahmad said.
Khyber district is part of Pakistan's semi-autonomous tribal belt on the Afghan border where the Taliban and other Al-Qaeda-linked groups have strongholds.
Local administration official Jehangir Azam confirmed the new toll and said 43 people were still being treated for injuries.