Passenger Muhammad Zubair was one of at least two passengers who survived after the Pakistan International Airlines (PIA) Airbus A320 came down in a residential area.
Health authorities in Sindh province said 97 deaths had been confirmed.
The cause of the crash is not yet known.
The pilot had reported a technical fault after one failed landing attempt, according to local media, then issued a mayday call as the plane came down.
It came days after Pakistan allowed commercial flights to resume after the country’s coronavirus lockdown was eased.
How did Muhammad Zubair escape?
Flight PK8303, an Airbus A320 carrying 91 passengers and eight crew – including many families travelling ahead of Sunday’s Eid holiday – had travelled from Lahore.
It was attempting to land at Karachi’s Jinnah International Airport at about 14:30 local time (09:30 GMT) when it came down.
Mr Zubair, who suffered only minor injuries, said the plane attempted one landing and then crashed 10-15 minutes later.
“No-one was aware that the plane was about to crash; they were flying the plane in a smooth manner,” he said.
He lost consciousness following the crash. When he came to, he said, “I could hear screams from all directions. Kids and adults. All I could see was fire. I couldn’t see any people – just hear their screams”.
“I opened my seatbelt and saw some light – I went towards the light. I had to jump down about 10ft (3m) to get to safety,” he added.
Why did the aircraft crash?
The plane was only just short of the runway perimeter when it struck houses in the Model Colony residential area. TV footage showed rescue crews combing through debris strewn across the streets of the densely populated zone. A number of cars were set on fire.
Eyewitness Mohammed Uzair Khan told the BBC he had heard a massive sound and went outside his home. “Almost four houses were completely collapsed, there was so much fire and smoke,” he said. “They are almost my neighbours, I can’t tell you what a horrible thing it was.”
Purported audio of the conversation between air traffic control and a pilot was published by Pakistani media. The pilot is heard saying the plane had “lost engines”. An air traffic controller asks whether it is going to carry out a “belly landing”, to which the pilot replies “mayday, mayday, mayday”.
One civil aviation official told Reuters the plane may have been unable to lower its undercarriage.
Images posted on social media appeared to show scorch marks under both engines, with no undercarriage visible on approach.
Investigators will try to retrieve the so-called black box recorders to help determine the cause. A committee of investigation has already been set up.
PIA said the plane had joined the fleet in 2014 and passed its annual airworthiness inspection last November.