Johnny Cueto won a pitching duel against the Cardinals' Lance Lynn, allowing just three hits through eight innings, to lift the Cincinnati Reds to a 1-0 victory over St Louis.
The Cardinals (80-67) saw their lead in the National League Central slip to 2 1/2 games over the second-place Pittsburgh Pirates.
Cueto (18-8) issued one walk and had seven strikeouts for Cincinnati (70-77), who won the final three games to take the four-game series.
Lynn (15-9) was an unlucky loser for the Cardinals, allowing one run on three hits with a walk and six strikeouts in eight innings.
Elsewhere, Chris Young hit a three-run homer with one out in the bottom of the ninth innings as the New York Yankees went from being five outs from getting no-hit to pulling off a dramatic 5-4 victory over the Tampa Bay Rays.
The Los Angeles Angels continued to play like the best team in baseball, finishing a three-game sweep of the lowly Texas Rangers with a 7-3 win.
Mike Fiers, who threw a pitch that sent Marlins slugger Giancarlo Stanton to the hospital, struck out eight in five scoreless innings and earned the win as the Milwaukee Brewers beat Miami 4-2.
Giants 6, Diamondbacks 2
White Sox 1, Athletics 0
Nationals 6, Mets 2
Red Sox 6, Royals 3
Pirates 4, Phillies 1
Indians 2, Twins 0 (second game)
Indians 8, Twins 2 (first game)