With one out and the score tied 3-3 in the seventh inning, Boston starter Josh Beckett (5-9) hit Andrus with a pitch and, after Josh Hamilton struck out, Andrus went to third on Adrian Beltre's single.
Then, with Michael Young at the plate, Beckett uncorked a wild pitch, allowing Andrus to come home with the go-ahead run.
Cruz added an insurance run with a bases-empty blast off Matt Albers in the eighth and the American League West-leading Rangers took the rubber match of their three-game series.
Derek Holland (7-5) earned the victory with 7 2/3 innings, allowing three runs on five hits while walking one and striking out seven.
Joe Nathan picked up his 20th save.
Beckett was touched for four runs on nine hits through seven frames.
Will Middlebrooks and Dustin Pedroia slugged solo homers for Boston.