Free-agent catcher Jarrod Saltalamacchia has reached agreement on a three-year, $21 million contract with the Miami Marlins pending a physical exam, a baseball source told ESPN.com.

Saltalamacchia, 28, is a .246 career hitter with 78 home runs over seven seasons in Atlanta, Texas and Boston. He hit .273 with 14 homers and 65 RBIs in 121 games with the Red Sox this past season.

Saltalamacchia's tenure in Boston reached an end earlier Tuesday when the Red Sox agreed to terms with veteran A.J. Pierzynski on a one-year deal. The Minnesota Twins also had expressed interest in Saltalamacchia before he came to terms with Miami.

Saltalamacchia joins Brian McCann of the New York Yankees, Carlos Ruiz of the Philadelphia Phillies, Dioner Navarro of the Toronto Blue Jays, Jose Molina of the Tampa Bay Rays and Brayan Pena of the Cincinnati Reds as the sixth free-agent catcher to sign a multiyear contract this offseason. He helps upgrade a Miami catching contingent that was in dire need of offensive improvement.

With Jeff Mathis and Rob Brantly logging the bulk of the time behind the plate, Miami's catchers hit a combined .194 with a .529 OPS this past season. They produced only nine home runs in 572 at-bats.