Legislators voted Tuesday night to raise the age for tobacco sales from 19 to 21.
Stores that violate the law will pay a $1,000 fine.
The county could lose more than $400,000 in tax revenue, but the change is expected to save $3 billion in health care costs.
"This will save lives," bill sponsor William Spencer said after the 10-8 vote.
The bill also includes e-cigaretts.