Rarely do starting pitchers conduct on-field postgame interviews, because they're typically doing their arm care routines in the trainer's room.

The way Chris Paddack pitched Friday called for an exception.

Paddack was perfect through his first 17 batters, pitching with remarkable efficiency. He completed 7â…“ innings, the second-longest start by a Twins pitcher this season, and he permitted only three baserunners, carrying the Twins to a 3-1 victory over the San Francisco Giants in their series opener at Target Field.

Speaking on TV after the Twins won their sixth consecutive game, moving one game under .500 for the first time since Opening Day, Paddack was doused with ice water from fellow starters Pablo López and Simeon Woods Richardson.

"I was giving the guys a hard time," Paddack said. "I've pictured that, 'Man, if I ever get player of the game,' to watch my back. I got locked in, blacked out and, sure enough, ice bath over the top."

Paddack made it look effortless. He reached only two three-ball counts, and there wasn't much hard contact against him. He required only 28 pitches in his first trip through the Giants lineup. He threw more than 15 pitches in only one inning.

Frustrated by the number of walks he's issued this year, Paddack threw a first-pitch strike to 20 of his 25 batters.

"Great fastball, offspeed stuff commanded and he used it about as well as I've seen him," Twins manager Rocco Baldelli said. "I mean, that was sick."

There was a close call in the first inning, when Willy Adames hooked Paddack's eighth pitch of the game toward the left field foul pole. Adames slowly jogged around the bases after third base umpire Ramon De Jesus signaled home run, but it was overturned on a replay review.

That foul ball was as close as the Giants came to a hit until the sixth inning. Paddack struck out five of his first nine batters, pummeling the strike zone with a fastball that sat at 95 mph, up 1.4 mph from his season average on an 84-degree night.

Twins shortstop Carlos Correa approached Paddack in the dugout in the middle of the fourth inning and told him, "Dude, this is the best I've seen your stuff. Keep attacking."

"That gave me some more confidence, like, my stuff is elite tonight," said Paddack, who owns a 2.51 ERA over his past six starts.

Giants second baseman Christian Koss broke up Paddack's perfect game with two outs in the sixth inning when he lined a fastball to center for a single.

When did Paddack start to recognize he hadn't allowed a baserunner?

"We know that after the first inning," said Paddack, laughing. "You're lying if you say you're not."

Paddack, who hadn't pitched beyond five innings all year, surrendered a solo homer to Matt Chapman in the seventh inning. He exited after recording one out in the eighth inning to a lengthy standing ovation from the announced crowd of 21,744.

He raised his glove in response, then hugged teammates in the dugout.

"That's what he's capable of," Baldelli said. "He showed us a lot today."

BOXSCORE: Twins 3, San Francisco 1

MLB standings

Byron Buxton, one of the hottest hitters in the league over the past three weeks, terrorized yet another team. He greeted Giants starter Jordan Hicks with a leadoff triple off the right field wall on Hicks' first pitch.

Two pitches later, Trevor Larnach poked an RBI single to left field.

Hicks, like Paddack, was efficient with his pitch count, but the Twins benefitted from their aggressiveness on the basepaths. Ty France opened the fourth inning with a single and swiped second base on a full-count strikeout for the third stolen base of his seven-year career. Correa followed with a two-out RBI single to right field but was tagged out when a throw from the outfield was cut off around the mound.

In the fifth inning, Harrison Bader hit a one-out single and moved to second on a wild pitch. Bader scored when Buxton lined a single to third base. Bader briefly stopped at third, but Giants left fielder Heliot Ramos bobbled the ball, allowing Bader to score easily on the error.

The Twins didn't have relievers Griffin Jax or Jhoan Duran available after they pitched in the previous two games, yet they picked up their first win of the season when scoring fewer than four runs. Danny Coulombe struck out two batters in the ninth to earn his second save.

"It wasn't like it was a seven-run game," Ryan Jeffers said. "There was a two-run lead we had to hold. I think it's one of the important parts of who we are as a team and as a bullpen. We've got the depth to be able to cover games like that."