The deal includes a $10 million club option for 2024 with no buyout.
His option price can increase by $4 million based on plate appearances next year: $250,000 each for 50, 250, 300 and 350, $500,000 apiece for 400 and 450, and $1 million each for 500 and 550. He would get a one-time assignment bonus of $1 million if traded.
"This place means everything to me. There's not anywhere else that I'd rather play,'' Muncy said. "Hopefully, there's more after that.''
The outfielder, who turns 32 next week, has struggled this season. He's hitting .190 with 16 homers and 47 RBIs while playing in 99 games for the team with the best record in baseball.
Muncy has, however, shown signs of coming around this month when he's batted .328 with seven homers and 15 RBIs and a 1.185 OPS.
Manager Dave Roberts said Muncy's improved numbers are encouraging.
"But this was already in the works when he wasn't swinging well,'' he said.
Last season, Muncy hit .249 with a career-high 36 homers and 94 RBIs and career-bests in total bases (262) and extra-base hits (64). He earned his second All-Star selection, but his year ended early when he injured the UCL on his glove hand on a play at first base in the last game of the regular season.
"I feel pretty close. I'm not going to say 100%,'' he said of his physical status. "If I can get right for October, that's what I care about.''
He's in his fifth season with the Dodgers.