A ban on junk food adverts before the 9pm watershed will come into force at the end of next year, with increased online restrictions also introduced.
The move is part of Boris Johnson’s efforts to tackle obesity, with NHS research showing that almost two-thirds of adults in England are overweight or obese.
But the announcement stops short of a total ban that had been proposed.
Small businesses with less than 250 employees will be exempt from the ban and allowed to promote foods high in fat, sugar and salt.
Restaurants, cafes and bakeries had expressed fears that the plans could have seen them unable to advertise products on their own social media accounts.
Online, the ban will only apply to paid-for advertising.
This means brands will be able to advertise within what is known as “owned media” spaces, such as their own blog, website, app or social media page.
“We are committed to improving the health of our children and tackling obesity,” public health minister Jo Churchill said.