Western powers pressed for the resolution in the face of mounting atrocities in Syria, including chemical attacks, systematic torture, barrel bombings and blocked aid access.
It was the fourth time China and Russia have blocked Western resolutions on the conflict, paralyzing Security Council efforts to end a war estimated to have killed more than 1,60,000 people.
The 13 other members of the Security Council voted in favor and Western powers rounded on China and Russia for protecting not just the Syrian regime but also opposition "terrorist groups."
"Our grandchildren will ask us years from now how we could have failed to bring justice to people living in hell on earth," said US ambassador Samantha Power.
"The victims of the Assad regime's industrial killing machine and the victims of terrorist attacks deserve more than to have more dead counted," she added.
Moscow is Syrian President Bashar al-Assad's closest ally, and has provided him with diplomatic cover throughout the crisis.
Beijing generally aligns with the Russian position.
"It is disgraceful that they have yet again vetoed the Security Council's efforts to take action on human rights violations in Syria," said British ambassador Mark Lyall Grant.
The text, drawn up by France, was co-sponsored by 60 countries, including members of the European Union, Japan, South Korea and several African states.
Syria is not a signatory to the International Criminal Court so only the Security Council can decide whether to refer war crimes or crimes against humanity on its territory to the court.
It did the same for Darfur in 2005 and Libya in 2011.
French ambassador Gerard Araud said before the expected veto it "would be an insult to millions of suffering Syrians." Western powers said they would continue to document atrocities and press for justice.
Writing in The Wall Street Journal today, French Foreign Minister Laurent Fabius said the Security Council "must unite."