BOSTON -- Thanks to a miscue by Toronto, the Boston Red Sox moved one step closer to clinching the AL East title.
J.D. Martinez hit his 41st home run and the Red Sox scored the tiebreaking run on an eighth-inning error, completing a three-game sweep of the Blue Jays with a 4-3 victory Thursday night.
After the Blue Jays rallied for two runs to tie it at 3 in the top of the eighth, Xander Bogaerts doubled in the bottom half and stole third. He came home when Toronto second baseman Yangervis Solarte dropped a popup in shallow right field.
"That was a huge situation," Bogaerts said. "I've made errors to make us lose, so I definitely know how he feels. But it's good we're on the good side."
Rafael Devers also went deep for the major league-leading Red Sox (101-46), who pulled 10 1/2 games ahead of the idle New York Yankees and decreased their magic number to six for securing a third straight division crown.
Boston is the only team in the majors that's already locked up a playoff berth.
Brandon Workman (5-0) faced one batter, ending Toronto's eighth-inning rally with just three pitches, and got the win. Craig Kimbrel earned his 40th save.
Danny Barnes (3-3) took the loss for the Blue Jays, who were down 3-1 entering the eighth.
"We clawed back into it after the bullpen did a nice job," manager John Gibbons said.
Lourdes Gurriel Jr. homered in the eighth for Toronto and the Blue Jays added another run after Justin Smoak walked with two outs and Kendrys Morales followed with a single. Joe Kelly hit Randal Grichuk with a pitch to load the bases, then plunked Kevin Pillar to force in the tying run.
"He knows that tonight wasn't a great night for him," Red Sox manager Alex Cora said about Kelly.
Devers hit a solo homer with two outs in the sixth off Mark Leiter Jr., putting Boston up 3-1.
Martinez went deep in the second, tying Oakland's Khris Davis for the major league lead in homers.
Sam Gaviglio pitched 3 1/3 innings for Toronto, allowing two earned runs and six hits.
ON THE RUN
Bogaerts said he wanted to be aggressive after his double in the eighth and he got a great jump as Barnes was pitching to Blake Swihart.
"I was just trying to get to third and make things a little bit easier," Bogaerts said. "Trying to get a guy home from third with one out is better than trying to get a guy in from second."
Bogaerts was halfway down the third-base line and had a clear view as Solarte tried to get under the ball before it bounced off his glove.
"You have to make that play. It's not always easy when the infield is in," Gibbons said.
SOLID START
Boston starter Eduardo Rodriguez recovered from a rough outing in a 6-3 loss to Houston last Friday, when the Astros tagged him for five runs and six hits over 3 1/3 innings.
Rodriguez struck out seven in six innings this time, retiring the last nine batters he faced. He struck out two in the sixth before the Red Sox turned it over to their bullpen in the seventh. He allowed one run on five hits and didn't walk a batter.
It was only his third start since coming off an extended stint on the disabled list with a sprained right ankle.
Cora said he wasn't about to push Rodriguez.
"It was more about taking care of him," the manager explained. "I felt that six was good. The way he threw the ball in the sixth inning was good enough for me."
TRAINER'S ROOM
Red Sox: 3B Eduardo Nunez left in the fourth with soreness in his right knee after hitting a leadoff double. Nunez, who tripped and stumbled over first base while running out a fielder's choice in the second, was replaced by Devers.
UP NEXT
Blue Jays: RHP Marco Estrada (7-11, 5.32 ERA) starts Friday for Toronto in the first of three games at Yankee Stadium.
Red Sox: RHP Hector Velazquez (7-2, 3.29) gets the ball when Boston opens a three-game series at home against the New York Mets.