Johnson (4-0) issued three hits and struck out six while walking three. The rookie right-hander notched a win in his first start since Aug. 25.
Adam Jones went 4-for-4 with a two-run homer and Ryan Flaherty also went deep for the American League wild card-leading Orioles, who came into the game trailing the AL East-leading New York Yankees by one game.
Blue Jays starter Henderson Alvarez (9-14) absorbed the loss, surrendering four runs on eight hits over 5 2/3 innings.
Rajai Davis got the only RBI for Toronto, which dropped its seventh straight.
Millions of Getty images now available for free via embed tool
NBC reportedly holds celebs hostage to Jimmy Fallon's show