TORONTO (AP) After being hit hard in the first inning, Blue Jays right-hander Aaron Sanchez settled in and silenced the Astros.
Russell Martin hit a go-ahead, three-run home run in the sixth, Sanchez pitched seven innings to get his first win in three starts and Toronto beat the Astros 4-2 Saturday, stopping Houston's winning streak at four.
Josh Donaldson also homered for the Blue Jays, who have won seven of their last nine meetings with the Astros.
Houston's Jose Altuve had two hits, a double and a triple, giving him 997 for his career.
Sanchez (12-2) gave up two runs and three hits in a shaky first inning, then shut Houston down over the next six frames for his first win since July 25 against San Diego. He allowed two runs and five hits.
''It seemed like they were just going to jump on the heater early in counts,'' Martin said. ''We kind of had to mix it up a little bit, throw some more breaking balls and some off-speed. He did that. Once he shows he has the ability to do that, it kind of takes away some of the aggressiveness.''
Sanchez lowered his ERA to 2.84, second in the American League to Kansas City's Danny Duffy (2.82).
''He probably had the best curveball I've seen him have consistently,'' manager John Gibbons said. ''He turned it into a great outing.''
Jason Grilli pitched the eighth and Roberto Osuna finished for his 26th save.
Carlos Correa hit a two-run double in the first as the Astros had three straight opposite-field hits.
''They slapped three balls to right field in a hurry,'' Sanchez said. ''I just knew something had to change there.''
Donaldson cut the deficit in half with a solo homer off Collin McHugh in the bottom of the first, his 28th.
Houston missed a chance to add to its lead in the second, when A.J. Reed led off with a double. Third base umpire Jeff Nelson ruled that Tony Kemp's one-out liner had landed fair, but Toronto challenged and the call was overturned after video review. Kemp grounded out and George Springer struck out to end the threat.
''Replay helps us more than it hurts us, but that's where I wish they would have taken away replay for a day,'' manager A.J. Hinch said.
McHugh left after back-to-back singles by Edwin Encarnacion and Michael Saunders in the fifth. James Hoyt came on in relief and got Troy Tulowitzki to ground out before Martin homered, his ninth.
''The game turned on a dime with one swing,'' Hinch said. ''(Hoyt) made one bad pitch and it cost us three runs.''
McHugh (7-10) lost his fourth straight start, with two of those losses coming against the Blue Jays. He allowed three runs and five hits in 5 1/3 innings.
''There's really no give in that lineup,'' McHugh said.
Osuna matched Terry Forster's MLB record by recording his 46th career save before his 22nd birthday. ''I'm looking for more,'' said Osuna, whose 22nd birthday is not until February. Osuna has converted 13 consecutive opportunities.
BRUSH WITH THE LAW
While chasing Donaldson's foul popup in the third, Houston 1B Reed crashed into a police officer sitting by the stands, knocking her to the ground. Neither Reed nor the officer was injured, and both laughed off the incident.
Altuve has reached safely in 43 straight road games, tying Jeff Bagwell for the second-longest streak in team history. Bagwell also holds the record for the longest streak, reaching safely in 51 straight road games in 1999.
Astros: Altuve started at DH with Marwin Gonzalez at 2B.
Astros: RHP Mike Fiers (8-5, 4.46) has struck out 18 batters while walking four over his past three starts.
Blue Jays: RHP Marcus Stroman (8-5, 4.76) took the loss in an Aug. 1 start at Houston despite allowing one run in seven innings. He's winless in three outings.