Johnson, whose two-run homer in the seventh off Mike Timlin put
Toronto ahead 6-5, had the second multihomer game of his career.
Miguel Batista (3-0), Toronto's fifth pitcher, threw 1 1/3 hitless innings.
David Ortiz had three RBI for the Red Sox, who started a six-game trip to Toronto and New York. Ortiz hit into a run-scoring double play in the first, then had a two-run single in the third
and an RBI single that tied the score 6-all in the eighth.
In his second start since coming off the disabled list, David Wells gave up five runs and seven hits in 6 1/3 innings. Wells, who gave up seven runs in 1 1-3 innings at Oakland on May 18, has a 6.81 ERA.
Toronto starter David Bush gave up three runs and five hits in three innings.
Trailing 3-0, Toronto went ahead in the fourth on Aaron Hill's two-run triple and Gregg Zaun's two-run homers. Zaun was activated from the 15-day disabled list before the game after being hospitalized earlier this month with a concussion after breaking up a double play.
Bill Mueller gave Boston a 5-4 lead with a two-run homer off Scott Downs in the seventh, but John McDonald chased Wells in the bottom half with a single.
Boston's Edgar Renteria, who entered the game in a 2-for-13 slump, led off the eighth with a triple off Jason Frasor before Ortiz's single tied it. With the potential go-ahead run on second with two outs, Miguel Batista struck out Jason Varitek.
Blue Jays ace Roy Halladay will miss his scheduled start Thursday because of a strained muscle on his left side. ... Boston third baseman Bill Mueller left the game in the ninth after being hit on the left foot by a pitch.