Darvish (12-5) dominated the Astros until Carlos Corporan lined a home run into the right-field seats with one out in the eighth for Houston's only hit.
Until the homer, Houston's lone runner came when rookie Jonathan Villar drew a two-out walk in the sixth. A pitch before the walk, Texas catcher A.J. Pierzynski was ejected for arguing with plate umpire Ron Kulpa on a breaking ball he called low.
In early April, Darvish was one out away from a perfect game at Minute Maid Park before Marwin Gonzalez singled between his legs.
Darvish exited after the eighth, having increased his major league-leading strikeout total to 207.
Joe Nathan pitched a perfect ninth for his 35th save. Brett Oberholtzer (2-1) took the loss.
YANKEES 2, ANGELS 1
NEW YORK (AP) — Minus Mariano Rivera in the ninth inning, the New York Yankees used a pair of relievers to close out the Los Angeles Angels and preserve the win for Hiroki Kuroda.
Kuroda (11-7) tossed three-hit ball for eight shutout innings.
Rivera was given the night off after blowing three straight save chances, including one Sunday. Fans chanted "We want Mo!" after Boone Logan relieved to begin the ninth and allowed a leadoff single to J.B. Shuck.
Yankees manager Joe Girardi said after the game that he wanted to give Rivera a night off after the career saves leader pitched three times in the past five days.
David Robertson struck out Mark Trumbo and ex-Yankee Chris Nelson with the bases loaded for his first save this season.
Garrett Richards (3-4) took the loss.
WHITE SOX 6, TIGERS 2
CHICAGO (AP) — Chris Sale scattered nine hits in his fourth complete game of the season, and the Chicago White Sox overcame Miguel Cabrera's fourth homer in fourth games to beat the Detroit Tigers.
Josh Phegley, Gordon Beckham and Alexei Ramirez singled in runs in a three-run fifth inning as Chicago handed AL Central-leading Detroit its third loss in four games.
Sale (8-11) struck out six and walked none, winning his second straight start after going 1-9 in his previous 11.
Cabrera went 2 for 4 with a homer in the first. The AL leader in batting, RBIs and runs scored is second in homers with 37.
Tigers starter Doug Fister (10-6) gave up four runs on eight hits and three walks in six innings.
TWINS 3, INDIANS 0
MINNEAPOLIS (AP) — Andrew Albers threw a two-hitter in his second career start and the Minnesota Twins backed him with a pair of home runs to beat Cleveland.
Albers (2-0) allowed just two singles, walked none and struck out two.
Brian Dozier and Trevor Plouffe homered to help the Twins win for the eighth time in 11 games.
Prized prospect Danny Salazar (1-1) gave up three runs on three hits with three walks and five strikeouts in four innings. The slumping Indians have lost seven of their last eight and are in danger of sliding out of the playoff chase.
ATHLETICS 5, BLUE JAYS 1
TORONTO (AP) — Alberto Callaspo hit a tiebreaking, two-run double in the ninth inning and the Oakland Athletics topped Toronto.
Callaspo, who had a tiebreaking double in the eighth inning of Sunday's 6-4 win, broke a 1-all deadlock with a bases-loaded double off closer Casey Janssen (4-1).
Ryan Cook (5-2) got two outs.
KANSAS CITY, Mo. (AP) — Wade Davis came off the family emergency leave list and pitched six solid innings, Billy Butler homered and Kansas City beat Miami to win for the 17th time in 20 games.
The Marlins are 1-8 in their past nine.
Davis had not pitched since Aug. 2, returning to Florida to be with his family after the death of his stepbrother on Aug. 3.
Davis (6-9) allowed two runs and six hits while striking out three and walking two.
Marlins starter Tom Koehler (3-8) held the Royals hitless until two out in the fourth, when they pieced together four straight hits.