With one big throw, and an even bigger swing, Curtis Granderson gave a somber city reason to smile.
Granderson threw out the potential go-ahead run at the plate in the top of the ninth inning, then hit a walk-off homer in the 10th to give the Toronto Blue Jays a 4-3 win over Boston on Tuesday night and hand the Red Sox their season-worst third straight defeat.
It was the first game for the Blue Jays following Monday's deadly van attack in Toronto that killed 10 people and injured 14.
"The city's hurting," left-hander J.A. Happ said. "This was a meaningful win."
Boston (17-5) still owns the best record in the majors.
Granderon's his third home run of the season came on a 2-0 pitch from Red Sox closer Craig Kimbrel (0-1), a towering solo blast off the facing of the third deck in right field. Granderson went 3 for 5 with three RBIs.
"Trying to just do anything I can to help the team win," said Granderson, who entered 0 for 5 with three strikeouts in his career against Kimbrel.
Kimbrel allowed his first earned run of the season and suffered his first blown save since Aug. 1, 2017, against Cleveland. The loss was Kimbrel's first since Oct. 1, 2016, against Toronto.
"You fall behind anybody, it's no good," Kimbrel said. "I threw a ball in there to get back in the count and it was game over."
Tyler Clippard (3-0) worked a scoreless 10th for the win as Toronto snapped a seven-game home losing streak against the Red Sox.
Blue Jays closer Roberto Osuna was handed a 3-1 lead in the ninth but allowed the Red Sox to tie it, his first blown save in seven chances.
"It's a big game for us," Blue Jays manager John Gibbons said. "If you don't win that one, that's a kick in the teeth."
Hanley Ramirez singled to begin the ninth, went to third on a one-out hit by Rafael Devers and scored on Eduardo Nunez's single to right. It was the first run off Osuna this season.
Jackie Bradley Jr. struck out and Nunez stole second before Christian Vazquez walked to load the bases for Brock Holt, who scored Devers with an RBI single to left. Left fielder Granderson threw out Nunez at the plate to prevent Boston from taking the lead.
"You have to challenge Granderson," Red Sox manager Alex Cora said. "You've been challenging Granderson for more than five years. He made a perfect throw and threw him out."
Happ struck out a season-high 10 over seven innings. He walked none and allowed four hits and one run in his longest outing of the season.
Boston's Rick Porcello allowed three runs and three hits in seven innings. Porcello walked three, two more than he'd walked in his previous four starts combined, and struck out a season-high nine, including five straight in the third and fourth.
"Those two guys, that was a pitching clinic," Cora said. "Happ was tremendous."
Porcello extended his scoreless innings streak to 14 by pitching around a one-out walk in the first but couldn't escape the second. One run scored on Kevin Pillar's fielder's choice, and Granderson added a two-run single that bounced off Devers' glove and rolled into shallow left field.
Red Sox designated hitter J.D. Martinez went 0 for 4 with three strikeouts and is 0 for 11 with eight strikeouts over his past three games.
Boston finished with a season-worst 14 strikeouts. The Red Sox have fanned 10 or more times in three straight.
Red Sox: SS Xander Bogaerts (left ankle) went 2 for 3 with an RBI in a six-inning stint with Triple-A Pawtucket, and remains on track to rejoin the Red Sox on Friday.
Blue Jays: 3B Josh Donaldson (right shoulder) could begin a minor league rehab assignment later this week, Gibbons said.
Before the game, the Blue Jays honored the victims of Monday's deadly attack and some of the first responders who rushed to the scene. Players from both teams stood in front of the dugouts as four Toronto police officers and two paramedics stood between second base and the pitcher's mound and were introduced to cheering fans. Following a video message and a moment of silence, a group of high school students sang the national anthems.
Blue Jays pitcher Marco Estrada greeted the first responders as they left the field
A blue banner reading "#TORONTOSTRONG" was hung from the second deck in center field, and similar signs were hung on the wall behind home plate. The same message was also printed in white on the back of the mound.
CATCH OF THE DAY
Two-time Gold Glove winner Mookie Betts made a diving, backhanded catch to retire Teoscar Hernandez in the fifth.
Red Sox: LHP Eduardo Rodriguez (2-0, 3.45) is 1-3 with a 5.67 ERA in eight career games against Toronto.
Blue Jays: RHP Aaron Sanchez (1-2, 3.86) will face his fourth AL East opponent in five starts when he takes the mound Wednesday. Sanchez has faced New York twice and Baltimore once.