Stewart will make $1.35 million this year and $1.4 million in 2017 under Tuesday's agreement. The Pirates' option is at $1.5 million with a $250,000 buyout.
The 33-year-old hit .289 with eight doubles, 15 RBI and nine runs scored in 58 games last year while backing up Francisco Cervelli, and he made $1,225,000. Stewart served as the primary catcher for Pirates ace Gerrit Cole. Pittsburgh went 26-10 in the games Stewart started in 2015, including a 15-1 mark at PNC Park.
He had asked for $1.6 million and had been offered $1.35 million when proposed arbitration salaries were exchanged last week.
Pittsburgh also designated right-hander Yoervis Medina for assignment.