Game Report: Cardinals 4, Diamondbacks 3

Trevor Rosenthal earned his first save since May 2 on Wednesday night, but it wasn’t easy.

Rosenthal took over the ninth inning role from struggling Seung Hwan Oh, at least for one game, inheriting a two-run lead as the Diamondbacks came to bat in Arizona.

He allowed one run, giving up one hit, walking two and throwing two wild pitches but was able to retire David Peralta on a ground ball with the potential tying run on third for the final out as the Cardinals hung on for the victory.

The win came on a night when both division-leading Milwaukee and Chicago lost, moving the Cardinals – despite being five games under .500 – to just 3 ½ games out of first place in the NL Central.

Here is how the game broke down:

At the plate:
The Cardinals built a 3-0 lead in the fourth on a bases-loaded walk to Jedd Gyorko and a two-run single by Yadier Molina, extending his hitting streak to 14 games … Matt Carpenter doubled to lead off the eighth – only the Cardinals’ third hit of the game, went to third on a wild pitch and scored on a two-out double by Gyorko for what proved to be the difference in the game … Randal Grichuk was 0-for-4 and is now hitless in eight at-bats in the first two games of the series.

On the mound:
Adam Wainwright allowed just one run through the first six innings, scattering six hits. The run came on back-to-back doubles in the fourth … He struck out eight and only walked one before giving up consecutive singles in the seventh and leaving with one out … One of the runners scored after Tyler Lyons relieved … Brett Cecil worked a perfect eighth before Rosenthal took over in the ninth, needing 29 pitches to secure his fourth save of the season.

Key stat: The Cardinals have allowed at least one run in the eighth or ninth inning in five of their last seven games.

Worth noting: The Cardinals optioned shortstop Aledmys Diaz to Memphis before the game and purchased the contract of Alex Mejia from the Triple A club. To make room for Mejia on the 40-man roster Alex Reyes was moved to the 60-day DL. Diaz was hitting .260 with seven homers but his 71 hits were the most on the team … Prospects Luke Weaver, Carson Kelly and Ryan Sherriff were named to the Pacific Coast League All-Star team on Wednesday … Weaver raised his record to 7-1 an lowered his ERA to 1.93 for Memphis on Wednesday night … The rosters for the All Star Futures Game will be announced on Thursday.

Draft update: Zach Johnson, a high school catcher from Winter Haven, Fla., selected by the Cardinals in the sixth round of this month’s draft, has signed a contract, receiving a $400,000 bonus. He turned down a scholarship offer to Florida. Johnson is expected to be assigned to the GCL Cardinals … Fourth-round pick Kramer Robertson, the shortstop for LSU, tweeted Wednesday night that he also had signed his contract … That leaves only eighth-round pick Wilberto Rivera, a high school pitcher from Puerto Rico, unsigned player among their top 11 picks and just two unsigned out of the top 28. The deadline for players to sign is July 7.

Looking ahead: Lance Lynn will start the final game of the series, which begins at 2:40 p.m. St. Louis time on Thursday. Patrick Corbin will pitch for the Diamondbacks.