The court ruled 6-3 Monday that Congress overstepped its bounds when it approved the law in 2002. It would have forced the State Department to alter its long-standing policy of not listing Israel as the birthplace for Jerusalem-born Americans.
The policy is part of the government's refusal to recognize any nation's sovereignty over Jerusalem, until Israelis and Palestinians resolve its status through negotiations.
The ruling ends a 12-year-old lawsuit by a Jerusalem-born American and his US citizen parents.
The case was instigated by the parents of Jerusalem-born US Citizen Menachem Zivotofsky because they want his passport to state that he was born in Israel. Ari and Naomi Zivotofsky sued on behalf of their then-baby son in 2003.
The legal fight has bounced around the US court system for a decade, an odyssey that included a previous trip to the Supreme Court that led to a ruling in 2012 on a more technical procedural issue.
Negotiations over the status of Jerusalem have long been seen as key to any potential peace settlement. The United States has been neutral on the question ever since Israel was founded in 1948.