Napoli had asked for $11.5 million, and the Rangers had offered $8.3 million.
The deal came four days before Napoli's scheduled arbitration hearing. It also wrapped up a week in which the Rangers also completed deals with slugging outfielder Nelson Cruz and shortstop Elvis Andrus to avoid hearings.
Napoli was traded twice in five days last winter, first going from the Angels to Toronto before the Blue Jays traded him to Texas for reliever Frank Francisco. Then he had a breakout season, becoming the Rangers' primary catcher the second half of the season.
After missing three weeks with a strained left oblique and returning to the lineup July 4, Napoli hit .378 with 20 homers and 50 RBIs over the last 67 regular-season games. He hit .328 with three homers and 15 RBIs in 17 post-season games, including 10 RBIs in the World Series.
The 30-year-old Napoli is a .264 career hitter with 122 homers and 324 RBIs in 619 games.
Cruz and Andrus got multi-year deals that took them through their last arbitration-eligible seasons, Cruz through 2013 and Andrus through 2014.
By finishing contracts with all three players, the Rangers again avoid having to go through an arbitration hearing. Their last was 2000, when they won their case against Lee Stevens.