Heavily armed gunmen disguised as security forces stormed a terminal at Karachi's international airport overnight, with at least 23 people killed and 18 wounded as flights were suspended and the army was called in.
The gunmen hurled hand grenades and fired automatic weapons as they attacked the cargo terminal at Jinnah international airport, which is Pakistan's busiest.
The army said it had regained control of the airport around dawn on Monday after the six-hour siege.
The dead included at least 10 of the attackers, officials said.
Al Jazeera's Kamal Hyder, reporting from Islamabad, said no one had yet claimed responsibility for the well-planned attack.
"They were wearing uniforms of the airport security force, they were using fake IDs to enter the airport," Hyder said.
Most passengers were evacuated to a secure location overnight and all local and international flights were suspended.
However, witnesses told Al Jazeera that more than 60 people were stranded in the main international airport terminal for several hours as they waited for security clearances.
Security was ramped up at airports and military installations across Pakistan following the siege.
The gun battles went on for several hours and television pictures showed a large fire burning at the airport as ambulances ferried casualties away.
Officials showed pictures of weapons used in the raid including sub-machine guns, rocket-propelled grenades, grenades and explosives.
Hyder said the gunmen had entered an old terminal normally used for VIP and cargo flights before gaining access to the airport's tarmac for one of the worst attacks in Karachi in years.
"This is not the first time, there have been two major attacks in the past, one in Karachi and another in Kamra airbase, there was another attack on Peshawar airport which was foiled," Hyder said.