The Cardinals scored seven times in the seventh and eighth innings to beat Arizona 8-4 on Wednesday night. After coming to town on a four-game losing streak and off a three-game sweep at the hands of Atlanta, St. Louis took two of three from the first-place Diamondbacks.
Yadier Molina's three-run homer on the first pitch from reliever Fernando Salas highlighted a five-run Cardinals seventh inning after Arizona had nursed a 2-1 lead through six in front of a sellout crowd of 44,072.
Tommy Pham drove in three Cardinals runs with a double and two singles. Matt Carpenter doubled twice and singled with one RBI.
The Diamondbacks dropped to 1-5 on their homestand and lead the surging Los Angeles Dodgers by just a half-game in the NL West.
Mikolas (9-3) gave up two runs and seven hits, walked four and struck out three.
Arizona reliever Yoshihisa Hirano (2-1) had his franchise-record streak of 26 games without allowing a run end when Yairo Munoz homered to lead off the seventh. Hirano gave up four runs, one earned, on three hits in two-thirds of an inning for his first loss since coming to the major leagues from Japan this season.
After Munoz's homer, shortstop Ketel Marte booted pinch-hitter Tyler O'Neill's grounder for an error. With one out and O'Neill on second, Pham singled to center to put the Cardinals up 3-2. Center fielder Jarrod Dyson left the game with discomfort in his right groin area, Lovullo said.
Salas relieved Hirano and gave up the big hit to Molina, who homered twice in the series.
St. Louis will head to San Francisco for four games against the Giants. RHP Luke Weaver (4-7, 5.16 ERA) starts in tonights opener. Johnny Cueto (3-0, 0.84) comes off the disabled list to pitch for the Giants.