The 22-year-old Monegasque won two races this year, his first season with Ferrari, and took more pole positions than any other driver.
Leclerc also finished fourth overall and above four-times world champion team mate Sebastian Vettel, whose contract expires at the end of 2020, in the season's standings.
"I am very happy to be staying on with Scuderia Ferrari. This past season, driving for the most illustrious team in Formula One has been a dream year for me," Leclerc said in a statement.
Canadian Grand Prix
‘I have to be ready’ - Verstappen aware of early battle against Alonso in Canada
19/06/2022 AT 14:25
"I cannot wait to enjoy an even deeper relationship with the team after what has been an intense and exciting 2019. I’m keen to see what the future holds and I can’t wait to get going again next season."
The decision makes Leclerc central to the team's long-term plans, with Vettel's future far from certain after seeing his authority steadily eroded in a 2019 campaign clouded by mistakes.
It also means he will be a team mate to whoever succeeds Vettel, with six-times world champion Lewis Hamilton the subject of plenty of speculation about his plans after Mercedes. The Briton's contract also expires at the end of next year.
Team principal Mattia Binotto indicated the decision to commit to a graduate of the Ferrari Driver Academy, who made his F1 debut with Sauber (now competing as Alfa Romeo) in 2018, had been obvious.
"With each passing race this year, our wish to extend our contract with Charles became ever more self-evident and the decision means he will now be with us for the next five seasons," he said.
"It demonstrates that Charles and the Scuderia have a firm future together...I’m sure that together, we will write many new pages in the history of the Prancing Horse." (Reporting by Alan Baldwin, editing by Ed Osmond)
Canadian Grand Prix
‘It ended up costing me’ - Sainz eager to make up for committed pole attempt
19/06/2022 AT 12:27
Azerbaijani Grand Prix
Ferrari reliability problems could wreck a promising season for Leclerc
12/06/2022 AT 16:34