PITTSBURGH -- Tyler O'Neill hit a two-run double to end a no-hit bid started by Pittsburgh's Mitch Keller, and the St. Louis Cardinals rallied to beat the Pirates 5-4 Saturday night.
Keller threw 84 pitches over six no-hit innings and was pulled from the game leading 4-0, but the Cardinals scored five runs off relief pitchers Geoff Hartlieb and Sam Howard in the seventh. O'Neill broke up the no-hit bid and keyed the inning with his bases-loaded double against Howard (2-3).
St. Louis improved to 25-24 and is a game ahead of Cincinnati and Milwaukee for second place in the NL Central. The top two teams in each division advance to the expanded postseason.
"Tonight was a microcosm of this group," Cardinals Manager Mike Shildt said. "Down 4-0, getting no-hit after six innings, it's not the most ideal conditions. But this group thrives when there aren't ideal conditions. Our guys stayed mentally ready and scratched and clawed and did what it takes to get the job done."
The 24-year-old Keller spun a gem in his second start since missing six weeks with a strained left oblique, but was pulled well short of finishing it off. He walked two and hit O'Neill with a pitch before retiring his final 14 batters, finishing with six strikeouts.
DODGERS 6, ROCKIES 1 Clayton Kershaw held Colorado to four hits and a run over seven strong innings to lead Los Angeles over Colorado. Chris Taylor homered, tripled and drove in three runs, and AJ Pollock also hit a home run for the NL West leaders.
METS 7, BRAVES 2 Rookie David Peterson struck out NL batting leader Freddie Freeman three times and fanned a career-high 10 in six sharp innings as New York beat Atlanta.
MARLINS 7, NATIONALS 3 In Miami, Miguel Rojas and Garrett Cooper each had a double and a home run and the Marlins beat Washington. With the win, Miami maintained its hold on second place in the NL East.
ATHLETICS 6, GIANTS 0 Jake Lamb hit a two-run home run and Oakland beat San Francisco for the second consecutive game. Lefty starter Jesus Luzardo (3-2) gave up five hits over six innings while striking out seven.
MARINERS 4, PADRES 1 Former Padres Ty France and Luis Torrens led Seattle to a victory over San Diego. France hit an RBI single in the first inning and Torrens had a two-run double in the third.
TWINS 8, CUBS 1 Eddie Rosario, Miguel Sano and Josh Donaldson homered as Minnesota clinched a second consecutive postseason berth.
ASTROS 3, DIAMONDBACKS 2 Jose Altuve drove in two, Kyle Tucker had a tiebreaking single and host Houston beat Arizona.
BREWERS 5, ROYALS 0 Corbin Burnes threw six solid innings of four-hit ball, Ryan Braun hit a two-run home run in Milwaukee's four-run eighth inning and the Brewers beat Kansas City.
PHILLIES 3, BLUE JAYS 1 Vince Velasquez pitched six strong innings, Andrew McCutchen hit the go-ahead single in the fifth inning and host Philadelphia beat slumping Toronto.
WHITE SOX 5, REDS 0 Tim Anderson hit two of Chicago's five home runs, and the White Sox took another step toward the AL Central title by overpowering host Cincinnati.
ANGELS 4, RANGERS 3 Mike Trout delivered a tiebreaking RBI single in the eighth inning, and host Los Angeles rebounded from a rough start for its third consecutive victory.
RAYS 3, ORIOLES 1 Charlie Morton (2-2) pitched five effective innings and AL East-leading Tampa Bay used home runs by Yoshi Tsutsugo and Randy Arozarena to beat Baltimore.
YANKEES 8, RED SOX 0 J.A. Happ (2-2) pitched eight scoreless innings, Clint Frazier hit a two-run home run and New York beat Boston for its 10th consecutive win.
TIGERS 5, INDIANS 2 Eric Haase and Daz Cameron hit RBI singles during a four-run eighth inning, and host Detroit won defeated Cleveland.