
Security forces battled gunmen after they stormed Bacha Khan University, reportedly setting off explosions.
Nearly three hours after the attack began, an army official said firing had stopped but troops continued to search the campus, block by block.
More than 130 students were killed at a school in nearby Peshawar in 2014.
Charsadda is about 50km (30 miles) from the city.
The attackers struck at around 09:30 local time (04:30 GMT), reportedly entering from the back where a university guesthouse is located.
"I personally heard two explosions near hostel number one," an unidentified eyewitness told Pakistan's Geo TV.
"We don't know if they were suicide bombers or grenades. I personally saw two explosions and smoke was rising."
Police and soldiers, backed by armoured vehicles, surrounded the campus and an evacuation got under way. Local media report a higher death toll, of between 15 and 20.