Chris Sale came off the mound, yelling something into his glove that wasn't fit for his mother's ears.
It wasn't another strikeout that got him fired up, though he had 12 of those on Wednesday night. It was a comebacker that he stabbed out of the air to start an inning-ending double play.
"Sometimes, the ball catches you," he said after leading the Red Sox to their ninth straight win, a 4-2 victory over the Texas Rangers. "Anybody out there would be fired up."
Sale pitched seven innings of shutout ball in his final start before the All-Star Game, and major league batting leader Mookie Betts had two hits for Boston. J.D. Martinez had a pair of RBIs to pad his major league-leading total of 79 as the Red Sox improved to 36 games above .500 for the first time since Bucky Dent homered over the Green Monster in a one-game playoff to settle the 1978 AL East title.
"We don't care where we're at or who we're facing," said Sale (10-4), who allowed six hits and walked one to win his fifth straight decision. "We come to win games, and that's all you can expect."
Bartolo Colon (5-7) allowed four runs — three earned — on nine hits and two walks, striking out three in six innings. Elvis Andrus had three hits for the Rangers, who struck out 18 times to lose for the fifth time in six games.
Andrus doubled to lead off the sixth, and then Nomar Mazara singled before Sale struck out Adrian Beltre. Rougned Odor hit a hard chopper back up the middle that Sale snagged, throwing to second to start the double play.
He walked off the mound shouting into his glove. Asked what he was yelling, he said, "My mom watches this. I can't say that."
Xander Bogaerts had three hits for the Red Sox, who have won 14 of 16 games. It's the second nine-game winning streak for the Red Sox this season; they also won nine straight after losing on opening day.
The Red Sox took a 4-0 lead into the eighth before Texas scored one off Heath Hembree and loaded the bases; Craig Kimbrel walked in a second run but then struck out Joey Gallo to end the inning.
He struck out the side in the ninth for his 28th save, and his 19th in a row.
"Good pitches there to Gallo," Red Sox manager Alex Cora said. "And then he came back and dominated."
The Rangers had difficulty with three different popups in shallow center field.
In the second, Eduardo Nunez reached on an error by second baseman Rougned Odor that scored Bogaerts to make it 1-0. After Martinez already drove in a pair of runs with a fifth-inning double, Bogaerts lofted one to left-center that caused a collision between left fielder Gallo and center fielder Delino Deshields, resulting in an RBI triple.
Nunez blooped another one into center in the sixth that Deshields dove for. Nunez was thrown out trying to stretch it into a double.
"The challenge is when the ball isn't in the air long enough to make the catch," Rangers manager Jef Banister said.
Red Sox left fielder Andrew Benintendi finished second in the voting for the final spot on the AL All-Star roster, losing out to Seattle shortstop Jean Segura. Benintendi had two hits on Wednesday for his sixth straight multi-hit game. He also scored for the sixth game in a row but failed to double, ending a streak of five straight games.
Sale made his 200th career start. ... It was the 11th time in his 20 starts this season he gave up one run or none. ... It was his ninth game this season with at least 10 strikeouts and his fifth straight with at least 11 strikeouts and no more than one walk.
Rangers: Deshields left the game after diving for Nunez's bloop in the sixth inning. He was evaluated for neck and shoulder problems. Later the same inning, Odor talked to the training staff after stretching awkwardly to hold the bag on a force at second.
"He's being evaluated; back, upper-neck area," Banister said after the game. "I just took him out to be evaluated."
Red Sox: 2B Dustin Pedroia was scheduled to return home to Arizona to continue his rehab from left knee surgery.
Rangers: Off Thursday, visit Baltimore on Friday, when LHP Cole Hamels (5-6) faces RHP Alex Cobb (2-11).
Red Sox: Host Toronto on Thursday, with David Price (9-6) facing a Blue Jays pitcher TBA.