Napoli hit his two-run shot in the fifth to give Boston a 4-1 cushion in its home opener, but the Blue Jays came back to tie it in the seventh.
He then hit a grounder to third base with one away in the eighth that brought home Jonny Gomes with what turned out to be the winning run.
Will Middlebrooks added a homer in the ninth for the Red Sox, who won for the third time in four games this season.
Junichi Tarawa (1-0) gave up run in his one inning of relief, but was credited with the victory. The go-ahead Boston run and the loss were charged to Esmil Rogers (1-0).
Toronto's Jose Reyes wound up a triple shy of the cycle, going 4-for-5 with a solo homer and two RBI.
Yosemite climber falls 30 feet, suffers major injuries
'How to Train Your Dragon 2' releases 5-minute clip