TORONTO -- J.D. Martinez hit a three-run homer in the fifth inning as the Boston Red Sox edged the Toronto Blue Jays 5-4 on Thursday at Rogers Centre.

Andrew Benintendi delivered an RBI double and Rafael Devers drove in a run on a sac-fly for the Red Sox (19-5), who snapped a three-game skid.

Marco Estrada (2-2) went five innings, allowing five earned runs on eight hits while striking out five and walking one. The right-hander got Mitch Moreland swinging with a 90 m.p.h. fastball to lead off the second inning to reach 1,000 career strikeouts.

Justin Smoak and Devon Travis went yard for the Blue Jays (14-10), while Kevin Pillar's sac-fly scored a run. Toronto has now dropped four of five.

Travis tripled and later scored in the eighth on a Kendrys Morales ground out, but that's as close as the Blue Jays would get to retaking the lead.

Aaron Loup, Seunghwan Oh and Danny Barnes combined to keep the Red Sox hitless over four innings of relief.

Toronto got to Chris Sale early as Pillar's sac-fly scored Teoscar Hernandez from third, giving Toronto 1-0 lead after one. Travis doubled the Jays lead in the second, taking Sale's 1-1 fastball into the second deck for his first home run of the season.

After Benintendi snapped an 0-for-16 slump with an RBI double to get the Red Sox on the board in the third, Smoak took Sale's 0-2 pitch deep for his third home run of the season to give Toronto a 3-1 lead.

Sale (2-1), who entered the game with a stretch of 23 consecutive scoreless innings at the Rogers Centre, allowed three runs on four hits while striking out four and walking two.

Craig Kimbrel pitched a scoreless ninth for his seventh save of the season.

Red Sox shortstop Brock Holt left the game in the third inning with left hamstring tightness after pulling up rounding first base. Holt was replaced by Tzu-Wei Lin.

Notes: Toronto will send RHP Marcus Stroman to the mound on Friday when they open a three-game series against the Texas Rangers. On Thursday Major League Baseball denied Red Sox RHP Joe Kelly's appeal of his six game suspension for hitting Yankees' Tyler Austin on April 11.