The pilot of the plane reported an unspecified problem while approaching the city at about 11:45 a.m., said Federal Aviation Administration spokesman Ian Gregor. The plane crashed about a half-mile southwest of the airport about a minute later.
The pilot had departed from the San Luis Regional Airport in San Luis Obispo for San Bernardino. The plane is registered to a San Luis Obispo resident.
The victims were taken to Loma Linda University Medical Center, both in serious to critical condition.
The pilot of the Beechcraft Baron 55 was attempting to land when it crashed into an RV storage lot.
It happened less than a mile from the San Bernardino International Airport's runway.
At the time, city firefighters were at the airport on standby for testing being done on a Boeing 747.
"Our fire department personnel witnessed it go down, saw that it was off of the airport grounds, made contact with the tower, the tower did confirm that the plane was down," said San Bernardino firefighter Jason Serrano.
Witnesses on the ground were the first to reach the pilot and his passenger. They pulled the two injured men out of the wreckage and away from the fuel and oil leaking onto the ground.
"They then went over to the aircraft," said Serrano. "One occupant did appear to be self-ejected at the time and one occupant was extracted by the good bystanders that came by."
It's unknown what caused the small-engine plane to come down. But when it did, the pilot managed to avoid hitting most of the 250 RVs and boats parked in the storage lot.
Authorities believe the pilot may have tried steering the aircraft away from a nearby roadway.
"If he crashed just a few feet further from this facility he could have landed right on Tippecanoe Avenue, landed on some trucks, landed on some private vehicles and we could have had a much more serious incident and had more than just the two injuries," said Serrano.