MIAMI -- It doesn't matter if the roof is open or closed, or who Miami has in its lineup, the Marlins have lots of trouble scoring runs.
|More on Red Sox-Marlins|
|More MLB coverage|
After giving up a leadoff triple to Jose Reyes, Buchholz settled in and struck out the side en route to a strong outing.
"We had some opportunities, but you have to give some credit to the starting pitcher for them," Reyes said. "He made some good pitches when he needed to. He had good stuff."
The Marlins have lost seven of eight and haven't scored more than five runs in a game since May 25.
"The way we were hitting, I think we have to take advantage of every opportunity we have. We didn't do that," Marlins manager Ozzie Guillen said.
"I was just trying to battle and not hit the ball in the infield. I was fortunate enough that the ball blooped in there," Aviles said.
Logan Morrison hit a leadoff home run in the Miami seventh.
Buchholz (7-2) allowed only five hits.
"Clay was absolutely fantastic," Red Sox manager Bobby Valentine said.
Marlins starter Mark Buehrle (5-7) allowed two runs and five hits in seven innings. He lost for the first time in interleague play since 2007 when he pitched for the Chicago White Sox against the Cubs, a span of 16 starts.
"A good pitched game by both teams," Buehrle said. "It was who was going to make the mistake first, and it was me."
The crowd of 29,326 was treated to a second straight night of baseball with the roof open. The Marlins decided to play in open air on Monday, hoping to snap a six-game losing streak. It worked then, but the trend didn't continue as Miami dropped to 3-3 with the roof open in its new ballpark.
Morrison singled off Aceves to begin the ninth, but he was stranded.
Shoppach's second double of the game drove in Will Middlebrooks for the first run. After Aviles singled, Darnell McDonald also singled before Buchholz flied out to center fielder Chris Coghlan, who made a diving play to prevent another run.
Reyes led off the Marlins' first with a triple for the second straight game, but Buchholz struck out Infante, Ramirez and Stanton to strand him.
"It was big," Buchholz said. "It's not an easy lineup to pitch to. It seems like every guy has power to hit the ball out of the park, and they have speed, too. It was a pretty tough situation."
The Marlins set up another run-scoring opportunity in the third with back-to-back two-out singles by Reyes and Infante. Ramirez also singled, beating Aviles' throw from shortstop, but Reyes was thrown out at home attempting to score from second.
"The third base coach [Joe Espada] sent me," Reyes said. "He said, 'go ahead,' you know. We think that maybe the shortstop would throw the ball off balance or he would bounce the ball or something like that and we [could score a run] that way."
Buehrle cruised through the first six innings, allowing just one hit.
- Buchholz is 4-1 with a 2.83 ERA over his last seven starts since May 11.
- Morrison is 6 for 11 with four extra-base hits in his last three games after going hitless in his previous 18 at-bats.
- Marlins CF Emilio Bonifacio (left thumb surgery) had his stitches removed, but isn't expected to return until after the All-Star break. He leads the NL with 20 stolen bases despite not playing since May 18.
- Boston released OF Marlon Byrd after designating him for assignment on Saturday.