In a battle between two of Major League Baseball’s top pitching staffs, it’s no surprise that runs were hard to come by on Friday night. After each striking early, the Twins and Royals pitching staffs put up zeros throughout the middle and late innings of the game, leading them into the ninth inning deadlocked.

It took just one swing to undo that.

Ty France stepped to the plate in the ninth inning and unleashed on a first-pitch slider from Royals reliever Lucas Erceg, sending the ball deep into the night and making 3-1 walk-off winners of the Twins in the series opener against Kansas City at Target Field.

“I have a handful of at-bats off him, knew he was going to try to get in the zone early and then expand late, so just saw the first pitch up and went,” France said in his on-field interview.

It was France’s second walk-off hit as a Twin this season and the first walk-off home run that the veteran has hit in seven-year career. The Twins (28-22) had managed just five hits in the game before that — two from shortstop Carlos Correa in his return from the seven-day concussion injured list.

Correa, who beat out an infield single right before France’s at-bat and scored the game-winning run, hammered a Noah Cameron pitch 429 feet out to center field in the second inning, tying the game at the time.

It was his first at-bat since colliding with teammate Byron Buxton in Baltimore. He said he experienced dizziness, headaches and brain fog in the days after suffering the concussion, but he didn’t miss a beat in his return, collecting two hits, looking as steady as ever at short and hitting another long flyball out to deep right field in his second at-bat of the day.

“I think it was a perfect way to get back,” Correa said. “Do a little bit of everything, get my feet wet once again and go from there.”

Besides Correa, the Twins were unable to do much against Cameron, the Royals’ rookie starter, who now has a 0.93 earned-run average through his first career starts. While the Twins didn’t have that many opportunities, the Royals (28-24) had a chance in almost every inning.

And yet, Twins pitchers made sure those opportunities didn’t amount to anything.

Though Pablo López did not throw a 1-2-3 inning in his outing, he was able to pitch around traffic for the most part, locking things down after giving up a run in the first inning.

López allowed seven hits in his outing, but each time he did, he maneuvered himself out of it.

“It could have been a little crisper, a little more dominant, but you have to take it,” López said. “You have to take what the game gives you. It gave me good defense behind me. It gave me (catcher Ryan) Jeffers calling good pitches. Then it gave us a walk-off win in the ninth inning. “

López departed with two outs in the sixth inning in favor of Brock Stewart, who got Kyle Isbel to pop up for the final out of the inning. In the seventh, Louie Varland allowed a four-pitch walk to begin his outing but a key double play turned by Correa behind him helped him out of the situation.

An inning later, after Maikel Garcia reached on a leadoff single, Griffin Jax picked him off before recording the next two outs of the inning. And then Cole Sands followed, throwing the first perfect inning of the night for the Twins.

“Ty coming through there, it just makes the game and in a lot of ways, it allows you to appreciate the pitching that we got even more today,” manager Rocco Baldelli said. “When you get a swing like that to win the game and you look back at the game, the reason we’re in that position is because we pitched so good.”