The engine room fire, which took place in the morning, had been extinguished and the ship was without propulsion, and operating on emergency generator power, the company said.
None of the 3,143 guests nor 1,086 crew were injured, and a tugboat was on its way to drag the vessel to the Mexican port of Progreso, where it was expected to arrive on Wednesday afternoon, Carnival said.
The company said the U.S. Coast Guard had been notified.
"Another Carnival ship, the Carnival Elation, is currently on scene and transferring additional food and beverage provisions to the Carnival Triumph," the statement said.
In January last year, the Costa Concordia, a 114,500 tonne luxury cruise ship operated by the Carnival Corp-owned Costa Cruises, capsized and sank off the Tuscan island of Giglio in Italy, killing 32 people.
Last month, Costa Cruises said Italian investigators were looking into the vessel owner's potential responsibility for the shipwreck.
The Carnival Triumph set sail from Galveston, Texas, on Thursday, and was due back on Monday Feb. 11.
Carnival said all passengers would receive a refund and "cruise credit equal to the amount paid for this voyage." The ship's next two voyages, scheduled for departure next week, were canceled, the company added.