The Arizona Diamondbacks' hitters didn't shine with runners on base and right fielder Gerardo Parra couldn't handle the sun very well either.

Felix Doubront pitched seven shutout innings to continue his run of strong starts and Jacoby Ellsbury drove in two runs to lift the Boston Red Sox to a 4-0 win over the Diamondbacks on Sunday.

Arizona collected eight singles, but failed to get any timely ones.

"They pitched good, but you can't give them too much credit," manager Kirk Gibson said. "We had eight singles today and didn't put anything together. We had opportunities with (runners in scoring position) and not good at-bats."

Parra had even a bigger problem in right, dropping a fly ball in the first for an error and losing another in the sun for Ellsbury's RBI single that made it 3-0 in the sixth. Shane Victorino followed Ellsbury's hit with a run-scoring single.

Gibson, who played right most of his 17-year career, certainly wasn't making excuses for his outfielder.

"Yeah, he lost the ball in the sun, but you've got to catch those," Gibson said. "You know it's there. You've got to position yourself, you've got to put darker glasses on, that ball's got to be caught. You can't give these guys opportunities like that."

Cody Ross and Martin Prado each had two singles for the Diamondbacks, who lost for the sixth time in eight games. They finished a six-game road trip against Tampa Bay, Texas and Boston at 2-4.

"We just haven't been playing good baseball all the way around — not swinging the bats, not getting hits when we need them, not making plays," Ross said. "It's not the way are capable of. We've got to be better."

It was Boston's seventh win in nine games, completing a 5-2 homestand. The AL East leaders play 16 of the next 19 away from Fenway Park, beginning Monday night in Houston.

Doubront (8-5) allowed five singles, struck out five, didn't walk a batter and allowed just one runner to reach second base in holding an opponent to three runs or fewer for the 15th straight start. It's the most by a Red Sox left-hander since at least 1920.

Koji Uehara, the third Boston reliever, closed out the combined eight-hitter.

Diamondbacks starter Brandon McCarthy (2-5), activated before the game after being on the 15-day disabled list with right shoulder inflammation since May 31, gave up two runs on five hits in 4 1-3 innings.

Boston grabbed a 2-0 lead and chased McCarthy with two runs in the fifth. Ellsbury's sacrifice fly made it 1-0 after consecutive singles. Shane Victorino then singled just over the head of McCarthy — a scary image since the right-hander was hit in the head by a line drive last year — before Pedroia's RBI double made it 2-0. David Ortiz was intentionally walked, loading the bases, but Will Harris relieved and got the next two hitters to pop out.

While with Oakland last September, McCarthy sustained what were described at the time as life-threatening injuries when he was struck in the head by a line drive off the bat of the Angels' Erick Aybar. The pitcher had an epidural hemorrhage, brain contusion and a skull fracture. Emergency surgery was performed that night and he was released from the hospital six days later.

McCarthy held Boston hitless until Mike Carp's two-out single in the fourth.

The Diamondbacks had a singles in four of the initial five innings against Doubront, but thanks to two double plays and solid pitching none of the runners reached second.

NOTES: Doubront has given up more than three runs just once in his 20 starts this season. ... The Diamondbacks designated left-handed reliever Tony Sipp (3-1, 3.86 ERA in 48 games) for assignment before to game. ... Farrell turned 51 on Sunday. ... RF Victorino hit his left hip hard on the top of the wall, attempting to make a leaping grab of A. J. Pollock's foul ball in the third. He walked back to his position slowly, but stayed in the game. ... John Lackey (7-8, 3.23 ERA) pitches for Boston against Houston's Brett Oberholtzer (1-0, 3.77 ERA) in the opener of a three-game series on Monday. ... Wade Miley (8-8, 3.68 ERA) is slated to go for the Diamondbacks when they open a two-game set against the Rays and Jeremy Hellickson (10-4, 4.60 ERA) on Tuesday.