Spanish driver Carlos Sainz will replace four-time Formula One world champion Sebastian Vettel at Ferrari next season, while Daniel Ricciardo has signed a "multi-year" deal with McLaren from 2021.
"It's a dream," said Sainz in a video he posted on social media. "I think you can imagine how happy I am, and what a special day it is for me."
Sainz, 25, will leave McLaren following the 2020 season to partner 22-year-old Charles Leclerc at Ferrari, forming the team's youngest pairing in the past 50 years.
"With five seasons already behind him, Carlos has proved to be very talented and has shown that he has the technical ability and the right attributes to make him an ideal fit with our family," Ferrari team boss Mattia Binotto said in a statement on Thursday.
"We've embarked on a new cycle with the aim of getting back to the top in Formula 1. It will be a long journey, not without its difficulties," he added, referring to the additional challenges created by the coronavirus pandemic.
"We believe that a driver pairing with the talent and personality of Charles and Carlos... will be the best possible combination to help us reach the goals we have set ourselves."
Sainz emerged in pole position to succeed Vettel at Maranello after the German announced Tuesday he was quitting Ferrari after talks over a new contract broke down.
Sainz, whose father, also Carlos, is a two-time world rally champion, drove for Red Bull's feeder team Toro Rosso and Renault before impressing with McLaren last season.
He secured the once all-conquering British team's first podium place in almost six years in Brazil last year.
The signing will also end any lingering speculation about six-time champion Lewis Hamilton leaving Mercedes for Ferrari.
Sainz said he planned to finish strongly with McLaren when the season resumes.
"You know how fond I am of McLaren, how fond I am of this team and how much I want to finish this 2020 in the best possible way with them," he said. "We'll keep pushing and then there will be time to talk about red cars."
- Domino effect -
Australian Ricciardo will drive for McLaren next season when he takes over the seat left vacant by Sainz.
Ricciardo, 30, will line up alongside Britain's Lando Norris, 20, in 2021 after he leaves Renault at the end of this season.
"Daniel is a proven race-winner and his experience, commitment and energy will be a valuable addition to McLaren and our mission to return to the front of the field," said McLaren team principal Andreas Seidl.
Ricciardo has won seven races and recorded 29 podium finishes since his F1 debut with the HRT team at the British Grand Prix in 2011.
He drove for Red Bull's junior team Toro Rosso in 2012 and 2013 before making the jump to the flagship Red Bull team in 2014. He finished third in the drivers' standings in 2014 and 2016.
He failed to muster a single top-three finish in a disappointing first season at Renault.
Ricciardo's exit at Renault could open the door for Fernando Alonso to reunite with the team where he won world titles with in 2005 and 2006, although they are reportedly keen to find an in-house replacement.
Alonso, 38, quit F1 in 2018 but hasn't ruled out a return to the sport.
- 'Time to reflect' -
Vettel's future meanwhile remains uncertain.
"What's been happening in these past few months has led many of us to reflect on what are our real priorities in life," said the 32-year-old Vettel.
"One needs to use one's imagination and to adopt a new approach to a situation that has changed. I myself will take the time I need to reflect on what really matters when it comes to my future."
Binotto said later on Thursday that there was "no longer a common desire to stay together" between Ferrari and Vettel.
"I admire Sebastian, I admire him as a person and as a professional racer," Binotto said at the Motor Valley Fest in Modena.
"There are challenges ahead ... We are laying the foundations for our future. We talked with Sebastian, and we found out we didn't share the same goals."
After the first 10 races of the coronavirus-hit 2020 campaign were either cancelled or postponed, organisers hope to start the season in Austria with back-to-back races on July 5 and 12.
F1 chief Chase Carey last week insisted a 15-18 race season was still possible, but he admitted that all scenarios are on the table "including the remote possibility of no racing in 2020".