Ukrainian forces say they have hit and badly damaged the flagship of Russia's Black Sea fleet.
Russia said crew members were forced to evacuate the guided-missile cruiser Moskva due to a fire but did not acknowledge an attack.
It comes as the focus of the war in Ukraine moves east, with fierce fighting continuing around the besieged key port city of Mariupol.
Maksym Marchenko, the governor of the Odesa region, said Ukrainian forces hit the Moskva with two Neptune cruise missiles and caused "serious damage".
Russia's defence ministry confirmed the ship was damaged but not that it was hit by Ukraine, claiming ammunition on board detonated due to a fire, with the cause of the blaze currently unknown.
The entire crew was evacuated, the ministry added – the cruiser typically has about 500 personnel on board.
Russia later said the fire had been contained and that the Moskva, which carries 16 missiles, would be towed to port with its guided missile launchers intact.
Professor Michael Clarke, former Director-General of think tank RUSI, said it appears the ship was hit by a double strike by the Ukrainians "who also seemed to use a drone in the process in order to distract the radar of the Moskva".
Watch: Professor Michael Clarke told Forces News the incident will make the Russians "more nervous".
"This will be a tactical victory for the Ukrainians and I suspect it will be confirmed as a Ukrainian victory," Prof Clarke said.
He told Forces News the incident, which is yet to be independently verified, will make the Russians "more careful".
"It won't alter the balance of power very much in the Black Sea but it will certainly make the Russians more nervous at using their naval force – they've got a good two dozen, maybe 30, warships in the Black Sea."
Prof Clarke added the Moskva was on "very fixed patrol schedules" close to land, which as a result made itself "rather obvious as a target".
The attack on the Moskva comes just days after the Russian warship featured on a new Ukrainian postal office stamp.
It depicts the moment a Ukrainian soldier defending a Black Sea island told the ship via a radio: "Russian warship, go **** yourself."
The interaction, which went viral and embodied Ukrainian resistance, came shortly before the Moskva attacked Snake Island at the start of Russia's invasion.