MINNEAPOLIS — Chris Paddack wasn’t quite perfect. But he was close enough.

Paddack flirted with a perfect game as the Giants lost to the Minnesota Twins, 3-1, on Friday night at Target Field, outdueling Jordan Hicks by limiting San Francisco’s offense to one run over 7 1/3 innings with six strikeouts.

“We just didn’t look crisp today, whether it was at the plate — or really anywhere,” manager Bob Melvin said. “Jordan pitched well enough to win us a game.”

Hicks worked around seven hits to deliver his first quality start since his season debut on March 31, allowing three earned runs over six innings with six strikeouts to no walks. Hicks’ ERA now sits at 5.82, but his 3.17 FIP (fielding independent pitching) suggests that he’s pitching better than the results indicate.

Matt Chapman accounted for the Giants’ only run against Paddack, lining a solo shot into the left-field bleachers in the seventh inning for his eighth home run of the season.

The Giants didn’t get their first baserunner of the evening until Christian Koss lined a single into right-center field with two outs in the top of the sixth inning. The Friday night crowd at Target Field groaned once Koss’ line drive found grass, then showered Paddack with applause for his efforts. Unfazed by the single, Paddack responded by getting Mike Yastrzemski to fly out and end the sixth inning.

“He was locating. Didn’t walk anybody. He was using all his pitches, probably used his slider a little bit more,” Melvin said of Paddack, who was 0-3 with a 5.57 ERA in seven starts entering Friday’s game. “He was locating with everything. He hadn’t pitched more than five innings this year, so a little disappointing on our end, but you got to give him credit.”

San Francisco nearly broke into the hit — and run — column much earlier.

On Paddack’s eighth pitch of the night, Willy Adames pulled a four-seam fastball down the left-field line. It cleared the wall by plenty of feet, and third base umpire Ramon De Jesus signaled that the ball was fair. Adames began jogging around the bases, but his trot soon slowed into a brisk walk. The call was overturned and Adames stepped back into the box, striking out two pitches later.

For most of the night, Adames’ loud foul ball was the closest that the Giants got to putting a runner on base.

The Twins took a 1-0 lead in the bottom of the first on Trevor Larnach’s RBI single, then doubled the advantage to 2-0 in the bottom of the fourth on Carlos Correa’s RBI single. In the bottom of the fifth, Harrison Bader scored on a single when left fielder Heliot Ramos misplayed the ball, extending the advantage to 3-0. For Paddack and the bullpen, that run support was plenty.

Paddack made quick work of San Francisco, filling up the strike zone and generating quick outs.

Only one Giant — LaMonte Wade Jr., appropriately enough — worked a three-ball count against Paddack.