Lance Lynn knew from the first pitch on Thursday that his recent struggles were over for at least one game.
The St. Louis right-hander bounced back from a frustrating stretch to allow one run over seven innings and the Cardinals scored three times in the third inning of a 3-1 win over the Philadelphia Phillies.
Matt Carpenter, Jon Jay and Matt Adams drove in runs for the Cardinals, who have won seven of nine.
Philadelphia has lost five in a row, tying a season high.
St. Louis has the most wins in the majors at 62 and is a season-high 25 games over .500. The Cardinals extended its lead over Pittsburgh to 2½ games in the NL Central.
Lynn (12-5) had dropped four of his previous five decisions and was 3-4 with a 6.32 ERA in his past eight starts. He gave up five hits against the Phillies. He struck out six and walked four. Lynn retired eight batters in a row from the fourth through seventh innings.
REDS 5, DODGERS 2: Mat Latos threw 7 2-3 innings, and Cincinnati got home runs from Jay Bruce and Xavier Paul to beat the Dodgers and end the NL West leaders’ six-game winning streak.
Latos (10-3) allowed two runs — one earned — and eight hits with four strikeouts en route to his first victory at Dodger Stadium after going 0-5 with a 3.95 ERA in his five previous starts there.
Zack Greinke (8-3) gave up four runs and six hits over seven innings.
METS 7, BRAVES 4: John Buck drove in three runs and Zack Wheeler beat Atlanta for the second time in seven major league starts as New York managed a split of the four-game series.
Daniel Murphy and Marlon Byrd three hits apiece for the Mets.
Wheeler (4-1) squandered a three-run lead by giving up homers to Dan Uggla and Freddie Freeman.
MARLINS 5, ROCKIES 3: Rob Brantly scored on a wild pitch to break a scoreless game in the eighth inning, Donovan Solano homered in a four-run ninth, and Miami waited out a 93-minute rain delay to beat Colorado.
The Rockies lost star Carlos Gonzalez after the third inning when he aggravated a sprain of the middle finger on his right hand. He is listed as day to day.
Reliever Adam Ottavino (0-2) struck out the first two batters he faced in the eighth before Brantly singled. Greg Dobbs singled and Ottavino threw a wild pitch in the dirt.
PADRES 10, BREWERS 8: Carlos Quentin and Jesus Guzman homered and the San Diego Padres got 16 hits on their way to beating Milwaukee. Will Venable added two doubles for San Diego and made a key catch in center field.
Edinson Volquez (8-8) worked into the sixth inning and got the win.
Yovani Gallardo (8-9) was tagged for six runs on eight hits and three walks in 3 2-3 innings.
After falling behind 10-3, the Brewers scored five times in the bottom of the seventh to make it 10-8.
DIAMONDBACKS 3, CUBS 1: Aaron Hill drove in two runs with a homer and double, helping Arizona top the Chicago Cubs and earn a split of the four-game series. Hill entered the game in a 4-for-31 slump over his previous eight games.
Cole Gillespie got the start in left field for the Cubs after Alfonso Soriano was removed from the lineup, pending completion of a trade to the New York Yankees that was said to be close. Soriano missed his second straight game while the club worked on the deal.
YANKEES 2, RANGERS 0: Hiroki Kuroda pitched seven scoreless innings, Mariano Rivera posted another save as the Yankees blanked Texas to split the four-game series.
After David Robertson worked a 1-2-3 eighth, Rivera pitched the ninth for his 33rd save this season, extending his career record to 641.
The Yankees got the only run they would need on Brent Lillibridge’s RBI double in the sixth.
Kuroda (10-6) scattered six hits, striking out three and walking one. He is 3-0 with a 0.69 ERA in four July starts.
BLUE JAYS 4, ASTROS 0: Mark Buehrle pitched a two-hitter and the Blue Jays ended a season-worst seven-game losing streak. The last-place Blue Jays had been 0-6 since the All-Star break and had dropped 14 of 18 overall.
The Astros have won just once since July 13 and have the worst record in baseball at 34-67. They’ve lost 18 of 22.
Buehrle (6-7) struck out a season-high nine and walked two in his first complete game of the season.
WHITE SOX 7, TIGERS 4: Jake Peavy pitched into the eighth inning and the White Sox beat Justin Verlander and Detroit as the Tigers again played minus Miguel Cabrera, who missed his third straight game with an injury.
Torii Hunter homered for the third time in the series, but the Tigers outfielder exited in the eighth and is day to day with a sore left Achilles.
Verlander (10-8) gave up seven runs and 11 hits in six innings.
ROYALS 7, ORIOLES 1: Jeremy Guthrie pitched six solid innings, and Billy Butler homered in Kansas City’s victory over Baltimore.
Guthrie (10-7), who won 47 games in five seasons with the Orioles, allowed six hits in six innings. He gave up one run, struck out five and walked one. Guthrie went 3-1 in July and his 10 victories are one shy of his career high, set in 2010 with the Orioles.
Miguel Gonzalez (8-4) lasted 4 2-3 innings, his shortest outing of the season.
MARINERS 8, TWINS 2: Hisashi Iwakuma allowed four hits in six shutout innings, and Seattle scored six runs in the second en route to a rout of Minnesota.
Iwakuma (10-4), who won his third straight decision, struck out nine and walked one.
Nick Franklin hit a three-run home run in the Mariners’ big second inning. Dustin Ackley had three hits, including two doubles, and two RBIs.
ANGELS 8, ATHLETICS 3: Albert Pujols, Mike Trout and Mark Trumbo each drove in two runs to power the Angels past first-place Oakland.
C.J. Wilson (11-6) allowed three runs and five hits in seven innings for his third straight victory — the past two against Dan Straily (6-4) and the A’s.
He struck out six and walked three.
Josh Hamilton was 1-for-5 with an RBI after missing three games with a stiff right ankle for the Angels, who had scored just seven runs total while losing three of their previous four.
Derek Norris hit his sixth home run of the season and added another RBI.
Straily gave up five runs and seven hits in 4 1-3 innings, striking out five and walking two.
Los Angeles had 12 hits and finished 6-for-11 with runners in scoring position.