TORONTO -- The Boston Red Sox followed up one of their worst games of the season with one of their best.

David Ortiz homered, Jake Peavy pitched seven strong innings and the Red Sox beat the Toronto Blue Jays 8-1 on Friday night.

"Good team win. We needed it after last night," Peavy said.

Will Middlebrooks returned from the disabled list with two hits and two RBI as Boston bounced back from an error-filled loss to the Yankees on Thursday. The Red Sox held a pregame meeting after making five errors in their 14-5 home defeat against New York.

"No one is proud of the way things unfolded [Thursday] night," manager John Farrell said before facing Toronto. "That was an ugly game."

Farrell was feeling better after the Red Sox set season highs with 16 hits and eight extra-base hits. They roughed up left-hander Mark Buehrle (4-1), who was trying to become the first Blue Jays pitcher to start a season with five straight wins.

"Just a well-played game all the way around," Farrell said.

Buehrle came in with a major league-best 0.64 ERA, but allowed 12 hits and seven runs, six earned, in 5 1/3 innings.

"We had a pretty clear understanding of how he was going to try and pitch us," Farrell said. "The most important thing is we waited out those borderline pitches that were good pitcher's pitches that were off the plate to get into some good hitter's counts."

Buehrle gave up more earned runs in Boston's four-run second than he had in his four previous starts combined (two). He walked three and struck out none.

"I wasn't hitting my spots as good as I was in the past," Buehrle said. "And when I did, they got some base hits. But overall, too many strikes in the middle of the zone."

Juan Francisco homered for the Blue Jays, who have lost three straight for the first time this season.

Peavy (1-0) allowed one run and five hits to win for the first time in five starts. He walked two and struck out seven.

"We executed on all sides of the ball tonight," Peavy said. "We need to put those efforts together consistently now."

Chris Capuano struck out the side in the eighth and Andrew Miller finished for Boston.

Red Sox catcher A.J. Pierzynski opened the scoring in the second with a sacrifice fly off Buehrle, his former Chicago White Sox batterymate. Middlebrooks followed with an RBI single, the first hit against Buehrle in 24 at-bats this season with a runner in scoring position. Dustin Pedroia capped the rally with a two-run single.

Ortiz made it 5-0 with a leadoff homer in the fifth, the 50th of his career against Toronto. Ortiz has 33 career homers at Rogers Centre, the second-highest total by an opposing player. Alex Rodriguez leads with 36.

Pierzynski singled to begin the sixth and scored on a double by Middlebrooks, who was thrown out at third. Buehrle left after walking Jackie Bradley Jr. and was replaced by Neil Wagner, who later issued a bases-loaded walk to Mike Napoli.

Peavy, meanwhile, breezed through the first five innings, allowing just two hits.

"That's what Jake can do when Jake is right," Pierzynski said. "He's been pitching pretty well all year, we just haven't scored any runs for him."

Jose Bautista hit a one-out double in the fourth and Edwin Encarnacion walked, but Bautista unwisely tried to steal third and was thrown out by Pierzynski.

Peavy called Bautista's decision to run "a shot in the arm for us."

Blue Jays manager John Gibbons made it clear he hadn't called for a steal.

"It wasn't smart, winning baseball and he won't do it again," Gibbons said.

Jose Reyes hit a one-out double in the sixth and went to third on Melky Cabrera's single, but Peavy struck out Bautista looking, then fanned Encarnacion to escape the inning.

Francisco ended Peavy's shutout bid in the seventh with a towering homer into the fourth deck, his first.