McCarthy (5-3) went seven innings, striking out five without a walk.
Crisp went 2-for-4 with a solo home run and a three-run triple for the A's, who won for the third time in four games following a nine-game losing streak.
Texas starter Yu Darvish (7-4) gave up six runs on six hits in 5 1/3 innings, striking out four but walking six and hitting one batter.
Darvish walked Brandon Inge and Moss with one out in the fourth, and then loaded the bases when he hit Kurt Suzuki with a pitch. Pennington drove in a run with a sacrifice fly to center and Darvish then issued a walk to Jemile Weeks to load the bases for Crisp -- who tripled off the right-field wall to put Oakland up 6-1.
Adrian Beltre drove in a run for the Rangers, who have lost two straight and three of their last four.