On December 23, 2011, the Nationals traded Norris, A. J. Cole, Tommy Milone, and Brad Peacock to the Oakland Athletics for Gio González and Robert Gilliam. Norris made his MLB debut for the A's on June 21, 2012. He was called up to be a backup catcher behind the offensively struggling Kurt Suzuki. He went 0 for 3 but made a key defensive play in the 9th inning throwing out Dodgers Dee Gordon attempting to steal second base. On June 24, 2012, in the bottom of the 9th inning on a full count and the A's trailing 2–1, he hit his first career home run, a walk-off 3-run homer that helped the A's sink the San Francisco Giants, 4–2. When Suzuki was traded to the Washington Nationals on August 3, Norris became the primary catcher for the A's, backed up by the newly acquired George Kottaras. Norris finished the 2012 season batting.201/.276/.349 with 7 home runs in 209 at-bats and 53 starts at catcher. In 2013, Norris was the primary catcher in a catching platoon, backed up by left-handed hitters John Jaso and Stephen Vogt. Norris missed portions of August and September with a broken toe. He started 71 games at catcher and played in 98 games overall, hitting for a.246 batting average with 9 home runs and 30 runs batted in. Norris was selected as an All-Star in 2014. He hit.270/.361/.403 with 10 home runs in 385 at-bats, making 93 starts at catcher with John Jaso as a back-up.
On December 18, 2014, the Athletics traded Norris and Seth Streich to the San Diego Padres in exchange for R. J. Alvarez and Jesse Hahn. Norris played in a career high 147 games in 2015, including 116 starts at catcher and 15 starts at first base. Despite moving to the National League, Norris racked up career highs in runs, RBIs, and home runs, and batted.250/.305/.404. Defensively, he threw out 34% of would-be base stealers and his pitch-framing was reported to be much improved from previous years. In 2016, Norris struggled at the plate, posting a career-low.186 batting average, with a.255 on base percentage and.328 slugging percentage. Norris finished the season with 14 home runs, tying a career high, and 42 RBI. Runners stole a major-league-leading 76 bases against him. Despite the Padres pushing to trade Norris at the July 31 deadline, Norris remained with the team.
Washington Nationals
On December 2, 2016, the Washington Nationals acquired Norris from the Padres in exchange for Pedro Avila. Norris and the Nationals avoided arbitration over the winter, agreeing to a $4.2 million contract for 2017. After the team signed free agent catcher Matt Wieters, the Nationals reportedly attempted to trade Norris but were unable to find a taker. The Nationals granted Norris his unconditional release on March 15, 2017, rendering him a free agent eligible to sign with any team and allowing the team to pay only one-sixth of Norris' 2017 salary.
Tampa Bay Rays
On March 25, 2017, Norris signed a one-year contract with the Tampa Bay Rays. He was designated for assignment on June 23, 2017 and released two days later. In 2017 he batted.201/.258/.380 with 9 home runs. On September 1, 2017, Norris was suspended for the remainder of the 2017 season for violating MLB's personal conduct policy, regarding a domestic violence case against his former fiancée. In an Instagram post, his former fiancée stated that Norris verbally and physically abused her and assaulted her in 2015. Norris denied the allegations and there was an investigation by MLB. He did not appeal his suspension, and forfeited the remaining $100,000 that was owed to him by the Rays.
Detroit Tigers
On December 5, 2017, Norris signed a minor league contract with the Detroit Tigers. He was released on March 28, 2018.
On April 14, 2018, Norris signed with the Sugar Land Skeeters of the Atlantic League of Professional Baseball. In 2018 he batted.256/.379/.402 with 12 home runs and 57 RBIs in 410 at bats. He became a free agent following the 2018 season.