TORONTO - Rowdy Tellez hit a go-ahead two-run shot in the fifth inning - one of three Toronto homers on the night - as the Blue Jays defeated the Boston Red Sox 4-3 on Tuesday at Rogers Centre.

Cavan Biggio and Reese McGuire also went deep as the Blue Jays (56-89) ended a season-high seven-game losing streak.

Reliever Justin Shafer (2-1) worked 1 1/3 innings for the win in the opener of a six-game homestand. Ken Giles closed things out in the ninth for his 19th save.

Mookie Betts homered for the Red Sox (76-69), losers of four straight games. Toronto's skid was its longest since a seven-gamer in April 2017.

Toronto right-hander T.J. Zeuch, making his first big-league start, did well to keep his composure after Betts launched his first pitch off the foul screen in left field. It was his 28th homer of the year.

The Red Sox scorched a few more balls in the opening frame off the 2016 first-round pick. Zeuch gave up a pair of singles before retiring the side.

Biggio tied the game in the third inning by turning on a 1-2 offering from Boston starter Nathan Eovaldi for his 13th homer of the year.

The Toronto rookie second baseman also provided stellar defence in the fourth when he robbed Marco Hernandez with a diving snag by the edge of the infield.

Another solo shot gave the Blue Jays a 2-1 lead in the bottom half as McGuire hit his fifth homer of the season.

The Red Sox chased Zeuch in the fifth after back-to-back doubles by Rafael Devers and J.D. Martinez. Reliever Buddy Boshers gave up a two-out single to Andrew Benintendi that scored Martinez with the go-ahead run.

Zeuch gave up six hits, three earned runs, three walks and had one strikeout.

He was Toronto's 20th different starting pitcher this season. That moved the Blue Jays into a tie for second-most in MLB history, trailing only the 1915 Philadelphia Athletics (24 starters).

Eovaldi worked 4 1/3 innings and allowed six hits, three earned runs and two walks while fanning six.

His replacement, Josh Taylor (1-2), was greeted with Tellez's 18th homer of the year. Biggio also came across after reaching on a leadoff walk as Toronto went ahead to stay.

The announced crowd of 17,819 stirred when the Blue Jays loaded the bases in the sixth for Vladimir Guerrero, Jr. However, Boston reliever Ryan Brasier handcuffed the young slugger, who grounded into a force to end the inning.

The Toronto bullpen held off the Red Sox from there with Derek Law, Tim Mayza, Jordan Romano and Giles providing scoreless relief. Boston put two runners on in the ninth before Giles got Devers to fly out to end the game, which took three hours 37 minutes to play.

Notes: Toronto's Trent Thornton (4-9, 5.23 earned-run average) was scheduled to start Wednesday night against fellow right-hander Jhoulys Chacin (3-10, 5.66). ... Zeuch allowed two runs on three hits in his only other appearance, a four-inning relief stint against Atlanta on Sept. 3.