Blue Jays pitcher Josh Johnson came into Tuesday's game against Seattle with an 8.92 ERA over his previous eight starts and a 14.06 mark over his last four.
The veteran right-hander finally ended his long personal skid, while Seattle's Felix Hernandez suffered his first loss in more than two months.
Johnson allowed five hits and fanned five in five shutout innings in Toronto's 7-2 victory in the second portion of a three-game series.
Johnson (2-8), who lost his previous six starts, earned his first win since June 23 against Baltimore. It was only his second win in his last 19 starts, going back to last season.
Jose Reyes hit the game's first pitch from Hernandez (11-5) over the wall in right field. Reyes and Emilio Bonifacio each knocked in two runs for the Blue Jays, who have won three in a row on the road.
Hernandez, who had been 6-0 over his last 12 appearances, suffered his first defeat since May 25 versus Texas. He was charged with six runs -- three earned -- on nine hits and three walks over five frames.
Brad Miller stroked a two-run triple for the Mariners, who have dropped six of their last eight games. Seattle committed a season-high four errors.
Reyes hit his 100th career homer, and the Blue Jays tacked on three runs in the fourth thanks to Bonifacio's two-run double to right field followed by a Reyes base hit to center. The hits came after a pair of errors.
"You give them extra outs, it's not a good thing. It made Felix work a little harder," Mariners acting manager Robby Thompson said.
Colby Rasmus and Brett Lawrie had RBI singles in the fifth, and Rasmus made a leaping catch at the wall to rob Kendrys Morales of a homer in the sixth.
Edwin Encarnacion's double plated another run in the seventh for a 7-0 lead before Miller's hit to center over the head of Rasmus broke the shutout.
Johnson entered the game 0-5 with a 9.00 ERA in six road starts this year ... Less than a week after being removed from the closer's role, Seattle's Tom Wilhelmsen was optioned to Triple-A Tacoma on Tuesday. The Mariners recalled reliever Carter Capps from Tacoma in a corresponding move ... Lawrie has a nine-game hitting streak, during which time he's batting .424 (14-for-33) ... Mariners second baseman Nick Franklin went hitless in three at-bats and is mired in an 0-for-27 slump.