The US ambassador to the United Nations said she was "disgusted" by the vote, which came a day after activists say Syrian forces bombarded the city of Homs, killing more than 200 people in the worst night of bloodshed of the 11-month uprising.
"Any further bloodshed that flows will be on their hands," ambassador Susan Rice said after the Russian-Chinese veto.
All 13 other members of the Security Council voted to back the resolution, which would have "fully supported" an Arab League plan under which Assad should cede powers to a deputy, withdraw troops from towns and begin a transition to democracy.
Russia said the resolution was biased and would promote "regime change." Syria is Moscow's rare ally in the Middle East, home to a Russian naval base and a customer for its arms.
The Syrian National Council, which represents major opposition groups, said it holds Moscow and Beijing "responsible for the escalating acts of killing and genocide; it considers this an irresponsible step that is tantamount to a license to kill with impunity."
The Security Council's sole Arab member, Morocco, voiced "great regret and disappointment" at the veto. Ambassador Mohammed Loulichki and said the Arabs had no intention of abandoning their plan.
Syrian UN envoy Bashar Ja'afari criticized the resolution and its sponsors, which included Saudi Arabia and seven other Arab states, saying nations "that prevent women from attending a soccer match" had no right to preach democracy to Syria.
He also denied that Syrian forces killed hundreds of civilians in Homs, saying that "no sensible person" would launch such an attack the night before the Security Council was set to discuss his country.
In Syria on Sunday state television showed live footage of Assad praying with Sunni Muslim clerics and listening to the recitation of the Koran in a Damascus mosque to mark the birthday of the Prophet Mohammad.
Much of the opposition to Assad is rooted in the Sunni majority, some of whose members resent the wide influence of members of Assad's Alawite sect.
Residents of Homs's battered Baba Amro district, speaking by telephone, denounced the Russian-Chinese veto, some chanting, "Death, rather than disgrace."
One resident who identified himself as Sufyan said: "Now we will show Assad. We're coming, Damascus. Starting today we will show Assad what an armed gang is." Assad has called his opponents "armed gangs" and "terrorists" steered from abroad.
Russia's UN envoy, Vitaly Churkin, accused the resolution's backers of "calling for regime change, pushing the opposition towards power and not stopping their provocations and feeding armed struggle."
"Some influential members of the international community, unfortunately including those sitting around this table, from the very beginning of the Syrian process have been undermining the opportunity for a political settlement," he said. Moscow is sending Foreign Minister Sergei Lavrov to Damascus on Tuesday.
If activists' accounts are accurate, the bombardment of Homs on Friday night was one of the bloodiest episodes of the Arab Spring uprisings sweeping the region and the deadliest incident in the Syrian conflict.
Syrian activist groups gave varying tolls above 200 killed, saying tanks and artillery blasted the Khalidiya neighborhood of Homs, a restive city that has become a heartland of resistance to Assad's rule.
Rami Abdullrahman of the Britain-based Syrian Observatory for Human Rights said as of late on Saturday he had a list of 128 names of people confirmed killed, accounting for about half the total.
Damascus denies firing on houses and says images of dead bodies on the Internet were staged. Western governments say they believe the activists.
"Yesterday the Syrian government murdered hundreds of Syrian citizens, including women and children, in Homs through shelling and other indiscriminate violence, and Syrian forces continue to prevent hundreds of injured civilians from seeking medical help," US President Barack Obama said in a statement before the UN Security Council vote.
"Any government that brutalizes and massacres its people does not deserve to govern," Obama said.
France called the Homs killings a "massacre" and a "crime against humanity." Tunisia ejected the Syrian ambassador and announced it would withdraw recognition of Assad's government. Crowds of Syrian activists stormed embassies in London, Cairo, Berlin and Kuwait.
US Secretary of State Hillary Clinton, who held what US officials described as "a very vigorous discussion" with Russia's Lavrov ahead of the UN vote, said it had not been possible to work constructively with Moscow.
"I thought that there might be some ways to bridge, even at this last moment, a few of the concerns that the Russians had. I offered to work in a constructive manner to do so. That has not been possible," she told reporters at a Munich conference.
French President Nicolas Sarkozy said Paris would consult with Arab and European countries to create a "Friends of the Syrian People Group" that would marshal international support to implement the Arab League plan the crisis.
"France is not giving up," Sarkozy said in a statement.