As the search for the Twins offense continues, Tommy Milone on Wednesday showed again why he no longer can be called The Nibbler.

Milone pounded the strike zone for most of the night, neutralizing St. Louis Cardinals hitters. It enabled the little offense the Twins mustered to hold up in a 3-1 victory at Target Field. Closer Glen Perkins came on in the eighth to finish the game and make him 23-for-23 in save situations, the longest streak to start a season since the Angels' Huston Street saved 23 consecutive in 2014.

Milone (3-1) weaved his way around the Cardinals batting order with pitches on the corners and a baffling breaking ball. It was perfect time for Milone to have a strong start, because the Twins entered Wednesday having lost seven of their previous eight games.

St. Louis opened the scoring in the second inning as Milone ran his pitch count up to 41. Mark Reynolds doubled of the right-field wall to begin the inning, then eventually scored on Jason Heyward's single to center. Milone found a groove, retiring eight consecutive hitters at one point. Cardinals hitters swung and missed his curveball all night.

"Early on I felt like I was throwing good pitches, but I was throwing deep counts.'' Milone said. "I was able to make that pitch to get out of it. As the game went on, I was able to get in a little bit more of a rhythm, started getting guys out of there earlier.''

The mystery was how the Twins were going to come up with runs; they entered Wednesday having scored two or fewer runs 10 times in June.

Trevor Plouffe opened the fourth with a leadoff double. Eddie Rosario hit a one-out single to right, but Plouffe was held at third. That brought up Eduardo Nunez, who was praised by manager Paul Molitor before the game for his recent run of quality at-bats.

But all Nunez had to do was stand in the batter's box and watch the Twins tie the score. St. Louis righthander Carlos Martinez sent a pickoff throw to first that Reynolds flat-out missed for an error. Plouffe jogged home as Rosario raced to third. Nunez then lifted a sacrifice fly to center field, scoring Rosario for a 2-1 Twins lead.

"We got a break on the misplay,'' Molitor said. "That was a two-run inning for us.''

Milone, who was recalled from Class AAA Rochester on June 4, shut down the Cardinals before being replaced by Casey Fien in the eighth. A month ago, Milone was in the minors because he picked at the corners of the strike zone, walked batters and ran into big innings. On Wednesday, he held St. Louis to one run over seven innings with no walks and five strikeouts. He has walked only one batter over his past two outings.

"I had too many walks,'' he said. "I was nibbling around the plate. I knew what I needed to do. I needed to go down [to Rochester] and be aggressive, come back up here and do the same thing.''

Rosario tripled and scored on Nunez's infield single — Reynolds' foot came off the bag as he caught the throw — that made it 3-1 in the eighth.

Perkins completed his four-out save by giving up two singles to start the ninth before striking out Reynolds and Randal Grichuk and getting Yadier Molina on a check-swing grounder back to the mound.

"Just to get a win in general is a lot of fun,'' Milone said. "I feel like our mentality hasn't changed. We know good teams go through stretches like we've had. We did it. It was the beginning of the year. It is just a matter of time before we come out of it, and we'll be a better team for it.''