Following a breakout season, Seattle Mariners General ManagerBill Bavasi promoted Johnson to the Triple-A level Tacoma Rainiers at the start of the. After the free agent signing of Japanese baseball star catcher Kenji Johjima and the selection of USC slugging catcher Jeff Clement, Johnson moved down the Mariners organizational depth chart. In, he was named the Tacoma Rainiers team captain. Johnson made his Major League Debut on September 4,, and played sparingly for the rest of the campaign with the Mariners. He had 1 hit in 3 at-bats for a batting average of.333, he also stole a base during his callup, during which he appeared in 6 games. Johnson was recalled to Seattle for the final month of the season when the rosters expanded from 25 to 40 for the month of September during which he hit his first major league home run, a two run blast off of Jerry Blevins of the Oakland Athletics in a game on September 27 at Safeco Field. He played in the Arizona Fall League after the season. Going into spring training it was thought that catcher Jeff Clement would be the back-up catcher and designated hitter on the opening day roster. However, with the signing of the left-handed hitting Ken Griffey, Jr., Clement would be have little playing time at the designated hitter position. This left the door open for Johnson on the opening day roster. In 2009, Johnson cracked the opening day roster with the Mariners for the first time in his career. Primarily used as a back-up catcher in the beginning on the season, Johnson later became the a starter due to his good rapport with the Mariners' pitching staff and an early season injury to primary catcher Kenji Johjima. When Johjima was activated from the disabled list Johnson again became the back-up catcher. However, Johjima again went on the disabled list in late-May and Johnson became the primary catcher again. Mariners managerDon Wakamatsu stated that Johnson handled the pitching staff better than Johjima. On June 13, Johnson was placed on the bereavement list to respond to a "family emergency". On June 19, he was activated from the bereavement list. In a 7-6 Mariners win over the Boston Red Sox, Johnson tied a club record with three doubles in one game on July 3. His third double of the game became the decisive hit as it scored the winning run for the Mariners in the top of the 11th inning in Fenway Park. At season's end it was reported that Johnson would undergo three surgeries, the first on his left hip, the second on his right hip and the third on his left wrist. He is expected to make a recovery in time for spring training. Johnson's hip ailments were detected during an MRI exam on October 5 in Seattle, Washington. It is a similar injury sustained by the New York Yankeesthird basemanAlex Rodriguez. Johnson's 2010 season was a disappointment, hitting.191/.293/.281 in 61 games for the Mariners. He was demoted to the AAA Tacoma Rainiers on August 3, where he hit.297/.403/.453 in 19 games. On December 13, he was designated for assignment by the Mariners.
On December 22, 2011, Johnson signed a minor league deal with the New York Mets with an invite to spring training. On May 8, 2012, Johnson was called up after Josh Thole was sent to the 7-day disabled list. On May 18, 2012, Johnson pitched a 1-2-3 bottom of the eighth inning against the Toronto Blue Jays, a game which the Blue Jays won 14-5. Johnson became the first position player to pitch for the Mets since July 26, 2004, when infielder Todd Zeile took the mound for the Mets in Montreal. After hitting.313/.371/.344 over 34 at-bats while sharing time behind the plate with Mike Nickeas, Johnson was optioned to Triple-A Buffalo upon Thole's return on June 1. On June 25, he was recalled after Nickeas was farmed out, only to get sent back down to Buffalo on August 15 after the Mets traded for Kelly Shoppach. The move was rescinded and Johnson was placed on the disabled list after it was discovered he had suffered a torn ligament in his left thumb. His season over, Johnson was outrighted off the Mets' 40-man roster October 17 and became a free agent.
St. Louis Cardinals
On November 13, 2012, Johnson signed a minor league deal with the St. Louis Cardinals with an invitation to participate in spring training as a non-roster player. His contract was purchased from AAA-Memphis and called up on July 9, 2013. Johnson was called in to pitch to secure the final out in a 13-4 loss to the Dodgers on August 7, 2013. He struck out Dodger's rookie pitcher Paco Rodriguez on 4 pitches. Johnson was given his outright release by the Cardinals on November 5, 2013 and elected free agency. He had 35 total at-bats with St. Louis in the 2013 season.
Return to Padres and retirement
Johnson signed a minor league deal with the San Diego Padres in February 2014, intending to switch to pitching full-time. However, after being sidelined in the spring due to elbow pain, Johnson learned that he had torn the ulnar collateral ligament in his throwing arm, and would need to undergo Tommy John surgery in order to catch again On May 23, 2014, Johnson announced via his official Facebook page that he had chosen to retire from professional baseball.