The fire started about 7 a.m. and caused about $1.2 million in damage to the three-story, 27-unit Mason Hotel and also destroyed $250,000 of personal property, authorities said.
Paramedics treated 17 people at the scene, including a police officer, for smoke inhalation and burns. Eleven people were taken to hospitals, where several were listed in critical condition.
Firefighters found a body in the hotel, but the victim's name was not immediately available.
One of two exits on the first floor was padlocked shut, said Maurice Luque, spokesman for the San Diego Fire Department. The hotel's interior was "pretty well gutted,'' he said.
The hotel, built in the early 20th century, was not required to have sprinklers and did not have them. A fire alarm did go off.
Property manager Tony Sanchez said the blaze began in a first-floor recreation room at the back of the building.
Hotel resident Kyle Pruitt said he struggled to escape.
"I had to roll my way down three staircases ... and cover my face with a towel and my robe,'' he told KFMB-TV. ``That's how I made it down the first floor.''
Another resident, Larry Bandelloni, 47, said flames were licking up to the top of the building when he made it outside.
"When I opened the door it was all black,'' he said. "It was so black I was blinded. I walked into a wall.''