“No to war. No to sending weapons”, read one large banner carried by protesters, as a vast crowd broke into cries of “give peace a chance”.
Nato founding member Italy has supported Ukraine from the start of the war, including providing it with arms.
New far-right Prime Minister Giorgia Meloni has said that will not change and the government has said it is expecting to send more weapons soon.
But some, including former prime minister Giuseppe Conte, have said Italy should be stepping up negotiations instead.
The peace rally was attended by some 30,000 people, Rome police told Italian media.
“The weapons were sent at the beginning on the grounds that this would prevent an escalation,” demonstrator Roberto Zanotto told AFP.
“Nine months later and it seems to me that there’s been an escalation. Look at the facts: sending weapons does not help stop a war, weapons help fuel a war.”
Student Sara Gianpietro said the conflict was being dragged out by arming Ukraine, which “has economic consequences for our country, but for the respect of human rights too”.
The Group of Seven foreign ministers, including Italy, on Friday vowed to continue supporting Ukraine in the fight against Russia.