Tugboats were scrambled to rescue the "Carnival Splendor," some 320 kilometers (200 miles) south of San Diego after the fire early Monday, said Carnival Cruise Lines, adding that passengers had no air conditioning or hot food.
"Conditions on board the ship are very challenging and we sincerely apologise for the discomfort and inconvenience our guests are currently enduring," said company president Gerry Cahill.
The fire erupted in the aft engine room around 6:00 am Monday (1400 GMT), and was extinguished with no injuries to guests or crew -- but the ship, carrying 3,299 passengers and 1,167 crew, was left without key services.
After the alarm was sounded passengers were told to leave their cabins and all move to the ship's upper open deck areas. They were allowed to return to their accommodation after the fire was put out.
"At this time, guests have access to their cabins and are able to move about the ship. Bottled water and cold food items are being provided," added the company statement.
But engineers had been unable to restore full power, it said: "Currently several key hotel systems, including air conditioning, hot food service, and telephones are not available.
"Last night, the ship’s engineers were able to restore toilet service to all cabins and public bathrooms, as well as cold running water. The ship’s crew continues to actively work to restore other services," it said.
It added that tugs were expected to reach the ship around midday (2000 GMT) on Tuesday to tow it to Mexico's northern port of Ensenada, "in an effort to get the guests home as quickly as possible."
The "vast majority" of the passengers are North Americans, said a company spokesman, Vance Gulliksen.
Mexican officials said the operation to tow the "Splendor" to Ensenada may take a day or two.
The ship "should start being towed this morning but the maneuver may last some 36 hours. The Splendor could dock in Ensenada port on Wednesday night," said Baja California Norte state tourism secretary Juan Tintos Funcke.
Two Mexican tug boats left Ensenada Monday night to help with the operation, Funcke told AFP. The ship was currently some 130 kilometers (80 miles) south of Ensenada, between Punta Colonet and San Quintin bays, he said.
It had been due to tour the so-called Pacific Riviera, including the luxury Mexican resort are of Los Cabos on the southern tip of the Baja California peninsula.
Once the ship is docked in Ensenada, some 80 buses would transfer the stranded passengers, Funcke said.
Mexican authorities would help efforts to transport the tourists across the northern border area which has seen some drug violence in recent months, he added.
The US Navy announced that the USS Ronald Reagan had been diverted to help the stricken cruise liner at the request of the US Coast Guard.
Some 35 pallets of supplies will be transported by the US Navy ship, which was training in the region, and delivered to the stricken cruise liner by helicopter.
The 113,000-tonne ship, which first entered service in July 2008, was on a seven-day Mexican Riviera cruise which started Sunday in Long Beach, California.
Passengers will get a full refund, their travel expenses paid and will receive another cruise equal to the amount paid for their doomed trip, the company added.
According to Carnival's website, a seven-day Mexican Riviera cruise this month would cost from $459 to $1,659 dollars per person