The 29-year-old England centre-back joined from Fulham in 2010 and has made 307 appearances for the club.
“This is my ninth season and I am delighted to be continuing my progression with this team,” he said.
“We’re all now concentrating on the busy period.”
United boss Jose Mourinho said: “I am very happy Chris has signed a new contract.
“Chris has been with the club for a number of years and is now one of the senior players within our squad.”
Smalling’s previous deal with the Premier League club had been due to expire in June 2019.