Mitch Moreland drove in three runs and Mookie Betts scored three times as the Boston Red Sox defeated the Toronto Blue Jays 8-7 on Tuesday night.
The Blue Jays made it interesting with a three-run ninth inning but Matt Barnes got Devon Travis on a lineout to end the game.
Moreland had a hand in both of Boston's three-run innings while Betts had three hits, including a solo homer in the seventh.
The Red Sox (9-5) extended their winning streak to four games while Toronto dropped to a major-league worst 2-11. Boston outhit Toronto 15-12.
Russell Martin, Justin Smoak and Ezequiel Carrera homered for the Blue Jays, who fell to 1-6 on their nine-game homestand. Kevin Pillar had three doubles for Toronto.
Boston left-hander Brian Johnson (1-0) got the start after being called up from triple-A Pawtucket earlier in the day and the Blue Jays made him work early with a 35-pitch first inning.
Pillar led off with a double and scored on a one-out single by Kendrys Morales. Troy Tulowitzki reached on an infield single and moved to third on a Smoak double that scored Morales.
Tulowitzki tried to score on a Martin grounder but Marco Hernandez threw him out at the plate. Steve Pearce struck out swinging for the third out.
The Blue Jays kept the pressure on in the second inning but couldn't push another run across. Devon Travis worked a one-out walk and moved to third on a Pillar double.
Jose Bautista was intentionally walked to load the bases but Morales struck out and Tulowitzki lined out.
Toronto starter Marcus Stroman (1-2) gave up three straight one-out singles in the third inning and all three runners came around to score. Betts drove in Xander Bogaerts and Moreland's two-run single brought home Betts and Andrew Benintendi.
Smoak made it a 3-3 game in the bottom of the third with a first-pitch solo shot to deep left-centre field. It was his second home run of the season.
The Red Sox moved ahead in the fifth when Hanley Ramirez doubled to score Betts from first base and Moreland followed with another RBI double. Toronto reliever Aaron Loup came on and gave up an RBI single to Sandoval before Dominic Leone recorded the final out.
Stroman gave up six earned runs, 11 hits and a walk while striking out four.
Martin cut into the Boston lead with a no-doubt solo shot in the bottom of the fifth. The Toronto native belted a 1-0 pitch off the facing of the second deck for his first homer of the year.
Johnson allowed four earned runs, seven hits and three walks over five innings. He had six strikeouts.
Betts hit his first homer of the season in the seventh and the Red Sox added another run in the eighth inning when Benintendi's ground-rule double scored Sandoval.
In the ninth, Pearce drove in Martin with a single and Carrera followed with a two-run pinch-hit homer. It was his first home run of the season.
Announced attendance was 29,281 and the game took three hours 48 minutes to play.
Notes: Pillar has hit safely in six straight games. ... The Blue Jays placed southpaw J.A. Happ (left elbow) on the 10-day disabled list before the game and recalled utilityman Ty Kelly from triple-A Buffalo. In addition, right-hander Danny Barnes was recalled as a corresponding roster move after left-hander Matt Dermody was optioned to Buffalo on Monday. Dermody gave up three homers in one inning last Sunday. ... The Blue Jays traded catcher Juan Graterol to the Angels for a player to be named later or cash. ... Left-hander Francisco Liriano (0-1, 9.00 ERA) is scheduled to start Wednesday night against right-hander Rick Porcello (1-1, 7.56).