Fisher’s second homer, a two-run shot off Ryan Brasier in the ninth, broke a 6-6 tie.
The Jays tied it earlier in the ninth on an errant pickoff attempt at first, allowing Rowdy Tellez to score from third following his leadoff double.
Rafael Dolis picked up the save for Toronto.
Blue Jays starter Nate Pearson was roughed up in the first inning.
Pearson, considered one of the top prospects in baseball, settled down after giving up four runs in the first. The right-hander didn’t allow another run before exiting with two out in the fourth.
Competing for a spot in the Blue Jays rotation, Pearson gave up a three-run home run to Mitch Moreland in the first. The frame ended with just two out when Pearson reached his pitch limit for the inning.
Blue Jays left-hander Ryan Borucki, also competing for a starting spot, gave up two runs in 2 2/3 innings of relief. The scoring came on a J.D. Martinez two-run homer in the fifth.
Tellez also homered for the Blue Jays.
The teams meet again on Wednesday night in Boston before the Blue Jays travel to Tampa Bay for their season opener on Friday.