The Red Sox tied the game with two out in the top of the ninth on Rafael Devers' 33rd home run of the season, a drive to left against Erik Swanson (4-2).
Boston stranded 12 runners in losing for the fourth straight game.
Garrett Whitlock (5-5) allowed a single to Cavan Biggio with one out in the bottom of the ninth. Chapman followed with a blast off the center field wall to score Biggio.
Daulton Varsho hit a solo home run for the Blue Jays.
Toronto left-hander Hyun Jin Ryu allowed no runs, six hits and two walks with two strikeouts in 4 2/3 innings.
Boston right-hander Nick Pivetta allowed two runs, four hits and no walks while striking out six in 6 1/3 innings.
Toronto scored once in the second inning. Biggio had an infield single to second, Chapman doubled to left and Kevin Kiermaier hit a sacrifice fly to the warning track to left.
The Red Sox could not take advantage of a single and a double in the second with Devers thrown out at home by shortstop Bo Bichette on a grounder by Pablo Reyes.
The Red Sox again failed to score in the third after Reese McGuire's single, Ceddanne Rafaela's double and a two-out walk to Devers.
Ryu allowed an infield single to Rob Refsnyder and a two-out walk to Devers in the fifth. He was replaced by Yimi Garcia, who ended the inning with a strikeout.
Varsho hit his 17th homer of the season on a blast to right with one out in the bottom of the fifth.
Toronto's Genesis Cabrera walked Refsnsnyder to open the seventh. Devers was hit by a pitch with one out and Reyes hit an RBI single with two out. Chad Green replaced Cabrera and ended the inning by retiring Trevor Story on a flyout .
—Field Level Media