The ship, which was carrying thousands of British holidaymakers, collided with a petrol tanker after it broke free of its moorings during a storm.
A small number of people are injured, the cruise operator confirmed.
“P&O Cruises Britannia was involved in a weather-related incident while alongside in Palma de Mallorca. A small number of individuals sustained minor injuries and are being cared for by the onboard medical centre,” a spokesperson said.
High winds caused the collision, port authorities in Palma said.