(AP) Chris Carter hit a three-run home run, Justin Maxwell and Matt Dominguez added solo shots and the Houston Astros beat the Toronto Blue Jays 8-6 on Saturday to snap a three-game losing streak.
Dallas Keuchel (5-5) pitched a season-high 7 1-3 innings to end a six-start winless skid. He allowed six runs and 10 hits, walked one and struck out six for his first victory since June 16.
Jose Veras got the final five outs for his 19th save in 22 chances.
The Astros, who had lost 21 of their previous 26, won for just the second time since July 12.
Houston's Jose Altuve left in the seventh with a sore left quadriceps and was replaced by Jake Elmore. Altuve was examined by the trainer after pulling up while going from first to third in the first inning, but did not immediately leave the game.
Jose Bautista hit a three-run homer, Mark DeRosa hit his 100th career home run and Colby Rasmus also connected for Toronto, but it wasn't enough as the Blue Jays lost for the eighth time in 10 games.
Maxwell and Dominguez went back-to-back in the fourth, the third time this season the Astros have hit consecutive homers.
All three homers came off Josh Johnson, who lost his career-worst fifth straight start.
Johnson (1-7) came in 0-4 with a 7.71 ERA in five starts since defeating the Orioles on June 23. He'd lasted just two innings in his previous outing, allowing five runs and seven hits against the Los Angeles Dodgers in a performance he described as "pitiful."
The struggling right-hander was immediately in trouble against Houston, the worst team in the majors, surrendering four runs before recording his first out.
Jonathan Villar hit a leadoff single, went to third on Altuve's base hit and scored on a single by Jason Castro.
Carter drilled Johnson's next pitch into the batter's eye in center for his 19th homer this season.
Edwin Encarnacion got Toronto on the board with an RBI single in the bottom half, and DeRosa homered on the first pitch of the second, but the Astros made it 6-2 when Maxwell and Dominguez hit one-out homers in the fourth. Maxwell's home run was his second, and his first since April 12. For Dominguez, the homer was his 13th.
Toronto pitchers have surrendered back-to-back homers on eight occasions this season, and have allowed 14 multihomer innings.
Rasmus hit a leadoff drive in the fifth but Maxwell made it 7-3 in the sixth when he was hit by a pitch, stole second and scored on Dominguez's two-out single.
That was it for Johnson, who matched a season-worst by allowing seven runs and seven hits in 5 2-3 innings. He walked two and struck out eight.
Keuchel got Brett Lawrie on a grounder to begin the eighth but couldn't retire another batter. Jose Reyes and Melky Cabrera singled and Bautista made it 8-6 with his 24th home run.
Veras came on and gave up a single to Encarnacion, but got Lind and pinch-hitter Maicer Izturis to fly out.
NOTES: Encarnacion had four hits, all singles. ... The Astros turned three double plays. ... Houston optioned RHP Paul Clemens to Triple-A Oklahoma City and recalled LHP Brett Oberholtzer from Triple A. ... OF Robbie Grossman joined the Astros on Saturday after being called up from Triple-A to replace OF J.D. Martinez, who was placed on the 15-day DL with a sprained left wrist. Martinez returned to Houston to be examined by team doctors. ... Astros RHP Jared Cosart (1-0, 0.60 ERA) faces Toronto RHP Todd Redmond (1-1, 4.43) in Sunday's series finale.