New York City voted to ban the sale of tobacco, cigarettes and e-cigarettes to people under the age of 21, raising the previous threshold of 18.
New York is the first large city to raise the age limit so high, a resolution that follows years of increasingly stringent laws on tobacco.
The federal age requirement for buying cigarettes is 18, which some states previously raised to 19.
A spokeswoman for New York City council said the proposal was approved by 35 votes to 10.
New York was the pioneer of a ban on smoking in bars, restaurants and public places -- initially criticised -- but since adopted in cities across the West.
Cigarette taxes are also the highest in the US.
Authorities hope that raising the legal age for buying cigarettes will reduce the number of smokers aged 18-20 by 55 percent.
But the move will be unpopular among those who feel that outgoing Mayor Michael Bloomberg has already over-stepped the line between protecting public health and interfering with personal choice.
City hall has said that in 10 years the percentage of adults who smoke has fallen from 21.5 percent in 2002 to 14.8 percent in 2011.
Among young people it has remained unchanged since 2007, at 8.5 percent according to official statistics.