The Cincinnati Reds and catcher Tucker Barnhart agreed to a four-year contract extension through the 2021 season with a club option for 2022, the team announced Friday.