The UNESCO resolution, passed at the UN organisation's Paris headquarters, criticised actions taken by "Israel, the occupying power... to alter the character and status of the holy city of Jerusalem."
It particularly criticised Israel's annexation of Jerusalem following its occupation of the city's east in 1967, a move never recognised by the international community.
It said such moves were "null and void and must be rescinded forthwith".
The resolution, which passed by 22 votes to 10, with 23 abstentions, was welcomed by the Palestinians.
Elias Wadih Sanbar, the Palestinian ambassador to UNESCO, saw the resolution as part of efforts to "stop giving a kind of blank check to an occupier that is acting with total illegality and impunity."
The Palestinian foreign ministry called the declaration "a victory for international law".
It said the decision reaffirmed "the centrality of Jerusalem to world heritage as well as the need to confront the dangers posed by the illegal practices of Israel, the occupying power... which threaten the cultural and historical integrity of these invaluable sites."
Meanwhile, Israeli Prime Minister Binyamin Netanyahu slammed the declaration, saying it denies the Jews' historical connection with Jerusalem by presenting Israel as an occupying power there.
"There is no other people for whom Jerusalem is as holy and important as it is for the Jewish people," he said in a statement, accusing UNESCO of "denying that simple truth."
Israel and UNESCO had a similar showdown in October after the body passed an Arab-sponsored resolution that criticised the Jewish state for restricting access to the Al-Aqsa mosque compound in annexed east Jerusalem.
The fate of Jerusalem has been one of the thorniest issues in peace talks between Israel and the Palestinians, which last broke down in 2014.
The Palestinians see Jerusalem as their future capital.