President Trump had declared Jerusalem as the capital of Israel, and decided to move its embassy from Tel Aviv even as it was widely condemned by US allies France and Germany, creating a firestorm in the Middle East.
"What we witnessed here in the Security Council is an insult. It won't be forgotten," US ambassador to the United Nations Nikki Haley said after the vote.
Just after the clash at the UN, the White House said US vice president Mike Pence would be delaying his trip to the Middle East which was planned for this week.
"The fact that this veto is being done in defence of American sovereignty and in defence of America's role in the Middle East peace process is not a source of embarrassment for us; it should be an embarrassment to the remainder of the Security Council," Haley said.
Israeli Prime Minister Benjamin Netanyahu thanked Haley and Trump for the veto on his Facebook page.
Following the US veto, Egypt said it would evaluate the situation to determine what steps to take next.
Palestinian foreign minister Riyad al-Maliki said the Palestinians would seek a rare emergency special session of the 193-member UN General Assembly on Trump's decision.