The Sapphire Princess hit the 70ft fin whale in the ocean off Alaska and unknowingly carried it trapped beneath the bows more than 1,000 miles to Vancouver, Canada.
It was not discovered until the 116,000-ton ship docked.
It is not known whether the whale was already dead when it was hit.
A spokesman for ship’s owner Cruise Lines said: “It is unknown how or when this could have happened.
We are saddened as we have strict whale avoidance procedures.”