Blake Snell became the major leagues' first 20-game winner in two years, helping pitch the Tampa Bay Rays past the host Texas Rangers 4-0 Tuesday night.

Snell (20-5) threw one-hit ball for five innings and tied the Tampa Bay record for victories in a season. David Price won 20 games in his Cy Young Award season of 2012.

The 25-year-old lefthander, who won his eighth start in a row, struck out five, walked two and threw 92 pitches, exiting with a 1.97 ERA.

No one in the big leagues won more than 18 games last season.

Snell, the Rays' first-round draft pick in 2011, was demoted to Triple-A Durham last season. Since he returned Aug. 8, 2017, Snell has a 25-6 record. In his year-plus in the majors before that, he had been 6-14.

"Knowing what it's like to struggle, that helps me a lot," Snell said. "It's always in the back of my head."

Tampa Bay has won four straight and 13 of 16 this month in a last-ditch attempt to wrest the AL second wild-card playoff berth from Oakland. The Rays began the day trailing the A's by six games.

The Rays scored three times in the fourth against Yovani Gallardo. Willie Adames hit a two-run homer and Joey Wendle had an RBI double.

New York 3, Boston 2: Neil Walker hit a three-run homer in the seventh inning as the Yankees kept the visiting Red Sox from a bubbly celebration in the Bronx for at least another night. Boston is trying to clinch the AL East at Yankee Stadium for the second time in three years. Aaron Judge returned to New York's lineup for the first time since breaking his right wrist July 26; Judge was 0-for-4.

Toronto 6, Baltimore 4: The host Orioles' loss to the Blue Jays was their 108th this season, a team record since they arrived in Baltimore in 1954. The Orioles led 4-2 in the seventh before a throwing error by third baseman Steve Wilkerson on a grounder by Teoscar Hernandez allowed two runs to score. Lourdes Gurriel Jr. followed with a two-RBI single.

Cleveland 5, Chicago 3: Corey Kluber struck out 11 in eight innings to record his career-high 19th win as the Indians beat the visiting White Sox. Kluber, who allowed all three Chicago runs, topped 200 strikeouts for the fifth consecutive season.

Houston 7, Seattle 0: Marwin Gonzalez hit a two-run homer in a four-run third inning that helped the host Astros rout the Mariners. Rookie starter Josh James struck out seven and scattered four hits over 5 ⅓ innings for his first major league win.

National League

Los Angeles 3, Colorado 2: Chris Taylor hit a solo homer in the bottom of the 10th inning to lift the Dodgers over the Rockies, moving Los Angeles 1½ games ahead of the Rockies in the Western Division. Colorado also fell a game and a half behind St. Louis for the second wild-card berth.

Philadelphia 5, New York 2: Jorge Alfaro hit a go-ahead, three-run homer in the sixth inning and the host Phillies rallied past the Mets to boost their faint playoff hopes.

Cincinnati 3, Milwaukee 1: Jose Peraza hit a two-run homer in the first inning as the Reds handed the Brewers their third loss in four games. Milwaukee managed only three hits in falling three games behind the Cubs in the Central Division.

St. Louis 8, Atlanta 1: Paul DeJong hit a two-run homer, and Yadier Molina added a two-run single in a four-run eighth as the visiting Cardinals beat the NL East-leading Braves.

Chicago 9, Arizona 1: Two-run homers by Javier Baez in the first and Daniel Murphy in the second helped the Cubs rout the host Diamondbacks to boost their Central Division lead to three games over the Brewers.

Washington 4, Miami 2: Stephen Strasburg matched his season high with 11 strikeouts and Bryce Harper tied a career-high with five walks as the visiting Nationals beat the Marlins.

Interleague

Pittsburgh 2, Kansas City 1 (11): Pinch-hitter Ryan Lavarnway drove in the winning run with a walkoff single in the 11th inning, to lead the Pirates over the Royals.