ARLINGTON, Texas -- Jon Gray pitched two-hit ball over seven innings to win his fifth consecutive start, Marcus Semien scored the game's first run after extending his major league-best hitting streak to 21 games and the AL West-leading Texas Rangers beat the Seattle Mariners 2-0 on Friday night.
Gray (6-1) struck out five and walked one to win a duel against Luis Castillo (4-3) that took only 2 hours, 5 minutes.
Castillo limited the Rangers to one run over seven innings with six strikeouts and one walk. Texas entered averaging an MLB-best 6.29 runs per game and had scored 11 runs in each of its previous two home games -- though those were before a 6-3 trip with series wins in Pittsburgh, Baltimore and Detroit.
Grant Anderson, who made his big league debut Tuesday for Texas with seven strikeouts over 2 2/3 innings at Detroit, worked a scoreless eighth with one strikeout. Will Smith worked a perfect ninth for his 10th save in 11 chances, wrapping up the Rangers' sixth shutout.
Seattle was shut out for the fourth time.
Castillo had thrown 12 scoreless innings over his last two outings and extended that streak to 17 before Texas got to him in the sixth. Semien had a leadoff single, moved to third on Corey Seager's single and scored on Nathaniel Lowe's sacrifice fly. The 21-game hitting streak is the longest of Semien's career.
The Rangers didn't have a hit until back-to-back singles by Robbie Grossman and Travis Jankowski in the fifth.
Texas added a run in the eighth on Corey Seager's RBI double against reliever Matt Brassh.
ASTROS 6, ANGELS 2 Yordan Alvarez hit a two-run home run off Shohei Ohtani for a major league-best 50 RBI, backing a strong start by Framber Valdez in Houston's victory over Los Angeles. Valdez (6-4) scattered five hits across seven scoreless innings to extend his winning streak to four games.
TWINS 1, GUARDIANS 0 Jorge Polanco hit an RBI double in the seventh inning and Jhoan Duran finished a combined eight-hitter, helping Minnesota beat Cleveland. Polanco's drive off Nick Sandlin (2-3) went high off the right-field wall, scoring Kyle Farmer from second base. The teams went a combined 1 for 11 with runners in scoring position before Minnesota broke through.
WHITE SOX 3, TIGERS 0 Mike Clevinger and four relievers combined on Chicago's fourth shutout, Tim Anderson scored a run and drove in one, and Chicago beat Detroit.
BREWERS 5, REDS 4 (11) Victor Caratini drove in the go-ahead run with an infield grounder in a two-run 11th inning and Milwaukee beat Cincinnati following the ejection of Brewers starter Corbin Burnes.
NATIONALS 8. PHILLIES 7 Lane Thomas singled in the go-ahead run in the eighth inning and Washington sent Philadelphia to it fifth consecutive loss, winning after blowing a six-run lead.
PIRATES 7, CARDINALS 5 Ke'Bryan Hayes hit a three-run home run in the seventh inning and Pittsburgh rallied past St. Louis for its third consecutive victory.
BLUE JAYS 3, METS 0 Chris Bassitt took the mound after a 91-minute rain delay, ready to rush back to Toronto as his wife went into labor, and shut down his former team on three hits to lead the Blue Jays over the New York. Bassitt's wife Jessica was due to give birth to their second child. George Springer started the night by homering on Justin Verlander's second pitch.
MARLINS 4, ATHLETICS 0 Edward Cabrera struck out 10 in six innings and Miami beat Oakland. Cabrera (4-4) gave up four hits and walked one. JT Chargois, Andrew Nardi and Tanner Scott followed Cabrera, each throwing an inning to complete the five-hitter.
ROCKIES 7, ROYALS 2 Ryan McMahon homered in the first inning and hit a go-ahead single in a six-run eighth to lead Colorado over Kansas City and stop a four-game losing streak. Elias Diaz and Nolan Jones hit two-run doubles in the eighth, among six hits by the Rockies in the inning. McMahon has reached safely in 11 consecutive games, batting .425 (17 for 40) with 5 home runs and 15 RBI.