The 26-year-old Johnson hit .308 in 94 games last season, the best average among rookies with at least 300 at-bats. Johnson finished with 22 doubles, 11 home runs and 52 RBIs and three four-hit games. He spent part of the season at Triple-A Round Rock, where he hit .329 with eight homers and 33 RBIs in 38 games.
Towles, also 26, was Houston's starting catcher at the start of last season, but hit only .191 with a home run and eight RBIs in 17 games before being optioned to Double-A Corpus Christi on May 4. He played five games for Corpus Christi and missed the rest of the season after tearing a ligament in his right thumb. He had surgery in July.