The airline's CEO said at a news conference that the flight from Lahore was carrying 99 passengers and crew members in total. A rescue operation is being carried out by Pakistan's Army Search and Rescue Team.
Two passengers survived but 97 bodies have been recovered, Pakistan Armed Forces spokesman Major General Babar Iftikhar said on Saturday. Army troops, rangers and social welfare organizations were assisting in the search, he added.
He added: "97 bodies recovered. 2 passengers survived. 25 affected houses cleared, their residents accommodated at various places with the assistance of Civil Administration."
The plane did not hit any buildings and no one on the ground appears to have been killed, PIA CEO Air Vice Marshal Arshad Malik had earlier told reporters in Karachi. The plane landed in a lane.
Malik said the airline was tracking the number of dead by coordinating with local hospitals, a procedure that will take at least two days. He only knew of one survivor, Zafar Masood, the CEO of the Bank of Punjab.
The airline chief said all checks and certifications had been in place, nothing was pending and the airline was operationally and administratively good to go. He added: "Air travel is the safest. PIA's pilots and engineers follow SOPs," and that the "A320 is one of the safest planes in the industry."
He could not yet confirm why the accident took place but said there will be a proper inquiry.
The pilot said he was ready to land but then made a second approach when something went wrong. Malik said the airline would know more about what happened when the flight recorder is retrieved.
One US citizen was on board Flight PK 8303, a State Department official told CNN. "We are monitoring the situation closely and are in touch with local authorities," the official said. "Our staff in Pakistan and here in the United States are working tirelessly to provide all possible consular assistance."s
Secretary of State Mike Pompeo tweeted Friday afternoon he was "shocked and saddened to hear of the plane crash today in Karachi."
"My prayers go out to those killed and injured, and their families," he wrote. "The U.S. stands with Pakistan during this difficult time."
The plane took off from Lahore and was due to land at 2:30 p.m. local time in Karachi but went missing from the radar, PIA spokesman Abdullah Khan told CNN.
The pilot on board told air traffic control in Karachi that he had lost engines, before the plane crashed on Friday.
"We are proceeding direct, we have lost engines," the pilot can be heard saying about the plane's approach, in an audio recording of aircraft communications obtained by CNN from a Pakistani government source.
On the recording, air traffic control asks the pilot to confirm that the plane will have a belly landing, a situation where an aircraft lands without deploying its landing gear.
The pilot's response is inaudible. It is unclear why air traffic control was discussing such a landing.
A few seconds later the pilot can be heard giving several mayday calls, followed by a response from air traffic control saying both runways are clear to land. The audio then cuts off.
Khan confirmed the authenticity of the recording.
"[The pilot] had been told both landing strips were available for his use but he preferred to use the go-around landing route, we are looking into the technical issue. Our prayers for the lives that have been lost," Khan said earlier on Friday.
A spokesman for the provincial government of Sindh said at least two passengers on board survived the crash.
Earlier, local government officials said five survivors were taken to hospital.
The airliner came down in Model Colony, a busy residential area near Jinnah International airport.
The flight was a special one to help passengers get home for the Eid holidays after the lockdown, Khan said. Pakistan started a phased easing of its nationwide Covid-19 lockdown on May 9.
Friday is the first day of a week-long Eid holiday in Pakistan to mark the end of Ramadan.
Pakistan's Army sent helicopters to assess the damage and rescue efforts, while urban search and rescue teams are being deployed on the ground, Pakistan's military tweeted Friday.
The Pakistan Red Crescent Society also said it had sent ambulances and rescue workers to the scene.
Pakistan's Prime Minister Imran Khan posted on Twitter that he was shocked and saddened by the crash. An "immediate inquiry" would be set up, he said.
Pakistan's civil aviation authority allowed limited domestic air travel to resume Saturday after a two-month suspension imposed as part of efforts to contain the spread of the coronavirus. International flights are not expected to resume until June 1.
This story has been updated to correct the plane's flight number.
CNN's Sophia Saifi and Adeel Raja reported from Islamabad and Laura Smith-Spark wrote from London. Sandi Sidhu contributed reporting.