Passengers said they had endured limited amounts of food and backed-up toilets during the three nights they spent adrift in the Pacific Ocean.
The Carnival Splendor was 200 miles (310km) from San Diego when the fire broke out in its engine room on Monday.
"I love being back on land," passenger Ken King told the Associated Press.
The 952ft (290m) ship, which is owned by Carnival Cruise Lines, was pulled into San Diego Bay at about 0830 local time (1630 GMT) by six tugboats and escorted by several Coast Guard vessels.
Individuals on the ship and about 100 people onshore cheered loudly as the Carnival Splendor reached land.
By mid-afternoon on Thursday, about 2,500 passengers had disembarked the ship, which a Carnival Cruise Lines official said was better than anticipated.
The evacuation of the passengers and crew was slowed by disabled elevators.
"The staff was excellent. Only a few people on board were rude. The food was horrible. Starting at 5am on Monday, we didn't have toilets for 13 hours," Mr King said.
The cruise line has promised to refund the passengers' fares, reimburse them for their travel costs and give them a voucher for another cruise.
A disabled cruise ship that caught fire off the coast of Mexico has arrived in San Diego and disembarked its 4,500 passengers and crew.