ARLINGTON, Texas -- Fausto Carmona's eight shutout innings were easy to watch. That wasn't the case for closer Joe Borowski in the ninth.
Borowski gave up two runs and two hits and had to overcome two errors by teammates as the Indians held on for a 3-2 victory over the Rangers on Friday night that wasn't sealed until Brad Wilkerson struck out with the bases loaded.
"None of my saves are uninteresting so I'm used to it," Borowski said after getting his 28th save in 31 opportunities. "I pretty much go right after you. If you beat me, you beat me."
Carmona (12-4) struck out seven, walked three and had 14 groundball outs to win his fourth straight start. The right-hander threw 105 pitches.
"It was my best stuff," Carmona said. "I was getting ahead of hitters. All three pitches were working. I threw the changeup more for strikeouts, but I threw sinkers and sliders too."
Ramon Vazquez had the only extra-base hit for the Rangers, a third-inning double.
Travis Hafner homered and Victor Martinez had three doubles to help the Indians pull within one game of the AL Central-leading Detroit Tigers, who were beaten 10-2 by the Kansas City Royals.
The Indians turned three double plays in support of Carmona, who hasn't lost since June 27.
Texas center fielder Kenny Lofton left the game in the third inning after fouling a ball off his right big toe.
The 40-year-old was hobbling as he was helped off the field grimacing in pain, but X-rays were negative and the Rangers said he is day to day.
Desi Relaford entered the game for Lofton, who left with an 0-2 count and runners on first and second. Relaford grounded into a double play, with Vazquez moving to third, and Carmona got out of the inning by retiring Jerry Hairston on a groundout to keep the game scoreless.
Cleveland's adventurous ninth started when Relaford reached on first baseman Ryan Garko's fielding error with one out. Relaford went to second on Adam Melhuse's pinch-hit single and scored on Mark Teixeira's single to break up the shutout.
Marlon Byrd hit into a forceout at third and Teixeira scored when Gerald Laird's routine grounder bounced out of shortstop Mike Rouse's glove to make it 3-2. Borowski struck out Wilkerson swinging at a slider.
"They made some mistakes and we were one swing away from pulling it off," Rangers manager Ron Washington said.
The errors made Borowski's job tougher.
"He got like six outs," Garko said. "He's picked us up all year. It was a great individual effort."
Said manager Eric Wedge: "It was one of the strangest innings and we still finished on the upside. The funny thing is we played our tails off in the infield the whole game, but then things started happening."
Cleveland took a 1-0 lead in the fifth off Brandon McCarthy (4-7) when Josh Barfield doubled, went to third on a wild pitch, and scored on Grady Sizemore's groundout.
Martinez doubled leading off the sixth and Hafner followed with his 16th homer to make it 3-0.
McCarthy allowed three runs and six hits in 5 2/3 innings, striking out four and walking three.
The Indians have scored only two runs for McCarthy in his last six starts.
"It isn't easy but I've just got to put up zeros," McCarthy said. "Carmona didn't have any run support either but he put up zeros. I've got to do a better job of shutting them down entirely."
Carmona's only career shutout came against Minnesota on May 17. ... Rangers SS Michael Young missed his second straight game. Young, who will rejoin the team Saturday, was in California for the funeral of his wife's grandmother. Young was replaced by Vazquez, making his sixth start of the season at short. ... The Indians won their sixth straight over the Rangers. ... Garko extended his career-best hitting streak to 14 games with a second-inning single.