But this win didn't come without a cost for the Red Sox as hot-hitting rookie Will Middlebrooks was sent for X-rays after being hit by a pitch.
Middlebrooks was hurt after Ross hit a two-run homer to support Buchholz's masterful effort. Boston had already done enough to secure the victory.
|More on Red Sox-Indians|
|More MLB coverage|
"Just what the doctor ordered," manager Bobby Valentine said of Buchholz's performance. "He was terrific. He was excellent. He was in control the whole way."
Middlebrooks left in the ninth after being struck in the right wrist by Esmil Rogers. Valentine hopes the third baseman, batting .288 with 15 homers and 54 RBI, isn't lost for long.
"He got hit pretty good," Valentine said. "He was in a lot of pain. I don't think he's in there [Saturday]. I was hoping it got more meat, but it was straight on the bone."
Buchholz (10-3) gave up one earned run in his second complete game this season and fifth of his career. The right-hander improved to 8-2 in 17 starts following a loss the last two years.
"Everybody wants to win every night," Buchholz said of being a skid stopper. "When you do it, sure it feels good."
Ross broke a 1-1 tie with a 420-foot shot over the wall in center field off Chris Seddon (0-1) in the sixth.
Asdrubal Cabrera had both Cleveland hits, including his 13th homer, but the Indians had their two-game winning streak broken and lost for the 12th time in 14 games.
"That's the best I've seen a guy against us, and we've seen some pretty good pitching this year," Indians manager Manny Acta said. "We couldn't do anything. He was way too good mixing his pitches."
Buchholz said he threw two types of changeups, a curve, and spotted his fastball on both sides of the plate.
He hasn't allowed more than two earned runs in five consecutive starts, the longest streak by a Boston starter since Tim Wakefield did it six times in a row in 2002. Buchholz didn't get a decision in three of those outings, however.
The right-hander gave up Cabrera's one-out homer in the first and an unearned run in the sixth. He struck out six, walked none, and moved to 6-1 with a 2.08 ERA in 11 starts since May 27.
The Indians twice robbed Jacoby Ellsbury of potential hits as they preserved the 1-1 tie. In the fourth, left fielder Ezequiel Carrera dove to his left to snag a line drive hit by Ellsbury in the left-center gap. In the fifth, center fielder Michael Brantley raced in and slid along his stomach to take away a potential bloop hit.
Pedroia singled with one out in the sixth. One out later, Ross connected for his 18th homer that made it 3-1.
"It was a slider," Seddon said. "I should have bounced it. I didn't bounce it and he hit it."
Cleveland got an unearned run in the bottom half. Jason Donald reached third as Boston made two errors on his leadoff grounder up the middle. Pedroia got in front of the ball, which skipped off his glove.
The shortstop Aviles tracked down the ball in short center, and threw to first as Donald made a wide turn with the idea of trying for second. He ended up walking to third when Aviles' throw bounced over the Boston dugout.
Donald scored on Carrera's sacrifice fly to make it 3-2.
Seddon allowed five hits and two earned runs in six innings in his second start since Cleveland purchased the left-hander's contract from Triple-A Columbus on Aug. 5.
- Boston LHP Felix Doubront will miss his next start, and RHP Aaron Cook will start Wednesday against Baltimore. Valentine said Doubront's velocity has been down, and he might be helped by skipping a start.
- OF Scott Podsednik, signed by Boston before the game, started in left. He was traded to Arizona on July 31, but was released after declining an assignment to the minors.
- OF Ryan Sweeney (broken hand) was moved to the 60-day disabled list to make room for Podsednik on the 40-man roster.
- Indians DH Travis Hafner, on the DL with a bulging disc in his back, had an injection to relieve inflammation. There is no timetable for his return.
- Cleveland released ex-Boston RHP Derek Lowe, who had been designated for assignment on Aug. 2.
- Valentine said DH David Ortiz (sore heel) likely won't be healthy enough to be activated Sunday.
- Red Sox RHP Daisuke Matsuzaka (back) gave up two runs over 4 2/3 innings in a rehab start at Triple-A Pawtucket.