Russian President Vladimir Putin said Russian forces in Ukraine were fighting for the future of their motherland, in his annual address marking victory over Nazi Germany in World War Two.
Despite rumours he would make a major announcement his speech stuck largely to defending Russia's invasion.
He tied the war in Ukraine to victory in 1945, blaming the West and Nato for rejecting security demands.
Almost 10 weeks into the invasion, civilian casualties continue to mount.
A Russian attack on a school on Sunday is thought to have claimed the lives of 60 civilians and Ukrainian towns in the Luhansk region came under further bombardment on Monday.
Flanked by military top brass, Russia's leader spoke of Ukrainians as fascists, repeating his false claim that the democratic government in Kyiv was run by neo-Nazis.
'Obvious threat to us'
Defending the motherland had always been sacred, he said, referring to the eastern region which is now the main focus of Russia's assault: "Today you are fighting for our people in Donbas, for the security of Russia, our homeland."
He also made unfounded allegations against Nato and Ukraine and described the invasion as a pre-emptive rebuff: "They were preparing a punishing operation in Donbas to intrude on our historic lands. In Kyiv they were saying they might get nuclear weapons and Nato started exploring the lands close to us, and that became an obvious threat to us and our borders."
Ukrainian presidential official Mykhailo Podoliak later responded, tweeting that there were no rational grounds for the war: "Nato countries were not going to attack Russia. Ukraine did not plan to attack Crimea."
There had been speculation that Russia's president may be considering a change of military strategy, either a full declaration of war, rather than the current so-called special military operation, or a mobilisation of Russian men to boost the armed forces.
Instead he said he was signing a decree for families of the dead and wounded in Ukraine to receive special support. During a meeting later in the day with the father of a serviceman killed in eastern Ukraine, he said everything was going according to plan and the "result will be achieved".
There was a minute of silence, including for the fallen in Ukraine, and he ended his 11-minute address with the words: "Glory to our armed forces - for Russia, for victory, hurrah", at which the assembled forces responded with a big cheer.
The parade was more modest than in recent years. Russian news agencies said 11,000 troops and 131 armoured vehicles took part in the event, including Russia's widely feted Armata tanks, which have not been considered combat-ready for the war in Ukraine.
Flypast in Z-formation scrapped
There was no sign of chief of staff Valery Gerasimov, who according to some unconfirmed reports may have been wounded on a recent visit to the front line in Donbas.
Not everything went according to plan. A flypast by the air force had to be cancelled shortly before the parade because of "weather conditions", according to the Kremlin.
Ahead of Victory Day, warplanes had rehearsed over Red Square in a Z-formation, the motif used by the Russian state during its war in Ukraine. Smaller parades took part in cities across Russia and the weather was also blamed for similar cancellations of flypasts in Yekaterinburg, Rostov and Novosibirsk.
There was no mention in Vladimir Putin's speech of Mariupol, the southern Ukrainian port city where a small group of Ukrainian forces continue to hold out in a maze of tunnels under the Azovstal steelworks. Ukrainian officials said Russian forces were trying to storm the plant backed up by tank and artillery fire.
But Russia was able to claim limited success on Monday in Kherson, the one Ukrainian city it can claim to have fully occupied.
State-run news agency Ria Novosti showed footage of a Victory Day march in memory of those who died in the war. It was led by Volodymyr Saldo, a pro-Russian local official who has been named Kherson governor and is now being investigated for treason by Ukraine.
What was then the Soviet Union lost 27 million lives during World War Two, with Ukraine accounting for eight million of them.
In a separate message marking 9 May, President Volodymyr Zelensky said Nazis had been expelled in 1945 and Ukraine would not allow anyone to "annex this victory". Very soon, he said, Ukraine would have two victory days to celebrate.
Small acts of protest did take place in Russia. Programme guides on smart TVs were hacked with an anti-war message saying "on your hands is the blood of thousands of Ukrainians". The front page of news website Lenta was also sabotaged with 10 detailed stories with headlines including "Russia leaves the corpses of its soldiers in Ukraine".
In Poland, Russian ambassador Sergei Andreev was doused with red paint as he tried to lay a wreath at a military cemetery.