Barnes was slated to be a free agent after the 2022 season but now will remain in Los Angeles through at least the 2024 campaign.
Barnes gets $3.5 million in each of the next two seasons, and the Dodgers have a $3.5 million team option for 2025. He can earn up to $500,000 annually in performance bonuses for games: $50,000 each for 65 and 70, $75,000 for 75, $150,000 for 80 and $175,000 for 85.
The Dodgers acquired Barnes via trade with the Miami Marlins in 2014. He made his major league debut a year later, and he has spent all eight of his major league seasons with Los Angeles.
Barnes has mostly split time behind the plate for the Dodgers, with his 102 games in 2017 a personal high. He has served mostly as Clayton Kershaw's personal catcher during that time.
A light hitter -- his career average is .224, with just 28 total home runs -- the 32-year-old Barnes is regarded as an excellent defensive catcher with a strong clubhouse presence.
He entered Sunday hitting .188 with four home runs, splitting time behind the plate with Will Smith.
Information from The Associated Press was used in this report.