ST. LOUIS -- Miles Mikolas scuffled in the first half of the season and wanted a fresh start after the All-Star game.
His got it.
Mikolas pitched an eight-hitter and Tyler O'Neill hit a pair of two-run homers, leading the St. Louis Cardinals to a 7-0 win over the Pittsburgh Pirates on Monday night.
It was the first complete game this season and second overall for Mikolas (6-9), who lasted just four innings in his last start before the break. He struck out three and walked none while throwing 100 pitches.
"I needed it. I needed something to make me feel good and put that first half behind me," Mikolas said. "In golf we always joke a hole-in-one and I'm right back on track. Hopefully, this one puts me right back on track."
It was first complete game by a Cardinals pitcher this season. Mikolas had the only one last year on May 21 against Kansas City.
It also was the second shutout of his career.
"It's pretty cool," Mikolas said. "Does anyone have two this year? I can be tied for the league lead in something. I like that."
Mikolas pitched out of three jams. The Pirates had runners on second and third with two outs in the fifth, but Mikolas got Jacob Stallings to ground out and end the inning. In the sixth, he allowed one-out singles to Adam Frazier and Brian Reynolds, his third hit before Starling Marte grounded into an inning-ending double play. Marte also hit into a double play in the first inning. In the seventh, Colin Moran doubled with one out and was stranded at third.
"He deserves a tip of the hat," St. Louis manager Mike Shildt about Mikolas. "Talk about a dominant performance. It was bolstered by some excellent defense. All his pitches were crisp. That's Miles."
St. Louis has won three games in a row.
O'Neill, who is playing in left for the injured Marcell Ozuna, had his first career multi-homer game, and drove in four runs for the second time in the last three games. He also singled to finish with three hits.
"I got the cage early today, working on standing back and seeing the ball properly and obviously it worked pretty well," O'Neill said. "I'm back to doing my thing and I want to keep it rolling."
The Pirates lost their fourth consecutive game and left manager Clint Hurdle lamenting the missed opportunities.
"We hit some balls hard. They made some plays, but at the end of the day we had eight hits," Hurdle said. "There was enough there to make a run at it, but we didn't get things done we needed to get done to get on the plate."
Pittsburgh starter Joe Musgrove (6-8) gave up five runs and five hits in 4 2/3 innings. He struck out seven and walked three along with hitting a batter.
The Cardinals scored an unearned run in the first inning. Paul Goldschmidt walked with two outs and O'Neill hit a line drive that Dickerson dropped, allowing Goldschmidt to score. Musgrove ended up striking out the side but he needed 36 pitches without allowing a hit to get out of the inning.
St. Louis went ahead 3-0 in the third. Matt Carpenter was called out at first on a close play to start the inning. After a 37-second challenge, the call was overturned. With one out, Goldschmidt hit a fly ball to deep left in front of the fence. The ball hit Dickerson's glove and popped out. It was ruled a double. An infield hit by O'Neill moved Goldschmidt to third and he came home on a sacrifice fly by Dexter Fowler.
The Cardinals chased Musgrove in the fifth. DeJong singled after Carpenter was picked off first by catcger Stallings. After Goldschmidt struck out, Musgrove gave up a two-run homer to center on his first pitch to O'Neill, giving St. Louis a 5-0 lead.
O'Neill got his second home run to center off reliever Kyle Crick in the seventh after Goldschmidt walked with two outs.
Carpenter fouled a ball of the top his right foot in the seventh and left the game. With a 3-2 count, Tommy Edman came in to finish the at-bat. He struck out and it was charged to Carpenter.
Cardinals Hall of Famer and broadcaster Mike Shannon celebrated his 80th birthday. The two-time World Series champion has been with the Cardinals for 62 years, including nine in a St. Louis uniform. He became a broadcaster in 1972 and has been there ever since. A cake was delivered to Shannon after two innings and was shown on the scoreboard. The fans began singing "Happy Birthday" accompanied by the stadium organist.
Pirates: OF Gregory Polanco (left shoulder inflammation) left his rehabilitation appearance with Triple-A Indianapolis after two plate appearances with left shoulder tightness. He was rested Monday and will be examined on Tuesday.
Cardinals: RHP Michael Mayers (right shoulder lat strain) remains on a rehabilitation assignment with Triple-A Memphis. He went on a 30-day injury rehab June 26.
Pirates: RHP Dario Agrazal (2-0, 2.18) will be making his third big-league start. In his last outing, he went six innings and allowed two runs against Milwaukee.
Cardinals: RHP Jack Flaherty (4-6, 4.64) will be making his sixth career start and appearance against Pittsburgh. The Cardinals are 4-1 in his five starts against Pittsburgh, winning the last four.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP—Sports