State media and a US spokesman confirmed that the aeroplane, which was en route to the capital of Kyrgyzstan, burst into flames immediately after hitting the building.
CCTV, China's national broadcaster, reported that the fire sent a large plume of black smoke over the Pudong airport.
Richard Buangan, the deputy spokesman at the US embassy in Beijing, said there were four Americans on board.
"Three of them are confirmed dead, and one is injured," he said.
The other crew members were also taken to hospital with injuries.
Officials have said that they are not yet certain about what caused the plane to veer off the runway.
Airport authorities declined to comment on the accident but said there were delays in flights leaving Shanghai.
The Zimbabwe embassy could not be reached for comment.