Norris, 19, had been expected to be confirmed after the best debut by a Briton since Lewis Hamilton in 2007 while Spaniard Sainz was already on a multi-year deal after joining from Renault at the end of last year.
No salary details were given, although the team indicated Norris, the youngest ever British Formula One driver, would be earning the same wages as before.
"They are the future for this team," McLaren principal Andreas Seidl told reporters at the team's Woking factory, adding that Norris had successfully made it through his 'probation time'.
Season 2020
Hamilton leads criticism of 2021 Pirelli prototype tyres
27/11/2020 AT 22:18
"We want to develop together...and at the same time hopefully we can make the same progress on the team side as well, giving them the right machine."
Former champions McLaren have not won a race since 2012, or a title since 2008, but are on the way back from a period in the doldrums and hoping to shine in front of their home fans at this weekend's British Grand Prix.
They sit fourth in the constructors' championship after nine of 21 races, 20 points ahead of engine provider Renault's works team.
"If I look down the grid, I can't think of a better driver combination that we'd like to have at McLaren," said Chief Executive Zak Brown.
"They're really driving well for the team and given where we are on the road to recovery, they've put the team's interests first which is not always easy for a racecar driver."
Brown said McLaren wanted to nip in the bud any speculation about drivers at a time of the year when other teams were seeking alternatives.
Red Bull-owned Toro Rosso already made an approach for Norris last year.
The energy drinks manufacturer's main Red Bull team are currently concerned with the underperformance of French driver Pierre Gasly compared to 21-year-old Dutch team mate Max Verstappen.
Verstappen won in Austria at the end of last month while Gasly was seventh and lapped.
"With the driver market going on right now, we wanted to be the first team to say here's what we’re doing and next year was never in doubt," said Brown.
"I think a lot of teams are sniffing around...and given how Carlos and Lando are doing it was in our best interests to make sure as the silly season ramps up that they should go knocking on some other doors."
Season 2020
Ferrari will support F1 engine freeze, says team boss Binotto
27/11/2020 AT 21:01
Season 2020
'We can make it very difficult' - Max Verstappen on Mercedes
01/07/2020 AT 10:07