Paul Molitor must feel like MacGyver these days, trying to win games with hairpins and paper clips. He lacks many of his most useful tools, and those he has often don’t work like they should.

Saturday night, the Twins were limited to three hits, none after the fourth inning; went 0-for-3 with runners in scoring position; and extended their streak to 81 consecutive innings without scoring more than one run in any of them. Yet somehow, even with their most unpredictable starting pitcher on the mound, they pieced together a 3-2 victory over Seattle and effectively sabotaged the Mariners’ playoff chances.

“It feels good to win a game,” Molitor said, and it’s been a while: The victory ended their seven-game losing streak and staved off their 100th loss for at least one more day. Heck, they hadn’t even held a lead in a week.

Which is why the loss must have particularly galled the Mariners, who fell 2½ games behind Baltimore for the final AL playoff spot. Ariel Miranda gave up three runs over four innings, two of them on solo home runs by Jorge Polanco and Miguel Sano, but the Seattle bullpen retired all 12 hitters it faced. The Twins even gift-wrapped the Mariners a threat in the ninth inning, when Sano booted a double-play grounder to third, putting runners on first and second with no outs.

“At that moment, when I missed the ball — tried to catch and throw early — I told Polanco ‘I want another ball,’ ” Sano said of his error. To his relief, he got another one right away: Kyle Seager hit a high chopper that Sano jumped for, then turned a third-to-first DP, with first baseman Kennys Vargas digging his relay throw out of the dirt.

“Give [closer Brandon] Kintzler credit,” Molitor said. “He pounded the zone with that sinker, came back and got another ground ball, which was huge.”

Almost as big as the relief job by lefty Taylor Rogers, who struck out the side in the eighth inning despite facing a couple of righthanded pinch hitters. And as huge as the performance by Tyler Duffey, who earned his team-high ninth victory by limiting the Mariners to four hits over seven innings.

“Pitching — it’s amazing how it can change the complexion of the game,” Molitor said. “Duffey hung in there. He didn’t have a changeup; he had to get by with two or three pitches.”

It was enough. Duffey stranded Nelson Cruz after a leadoff double in the second, and stranded Mike Zunino on second after he reached base on a Polanco error. His only mistake came in the fourth inning on a 3-2 fastball to Cruz, with Robinson Cano aboard, that landed in the third deck in left-center. It was Cruz’s 39th home run and an especially impressive one, measured by MLB’s Statcast at 493 feet. But it didn’t rattle the oft-rattled Duffey.

“No, never,” Duffey said. “I was 3-2, I was going to throw a sinker, and he hit it. That’s why he is who he is. I just tried to throw a fastball by him, but it didn’t work out.”

Somehow it all worked out for the Twins, though, and especially Sano, who hit the go-ahead home run on the first pitch of the bottom of the fourth inning and turned the rally-snuffing double play, all in front of Cano, his longtime friend and mentor. Only one thing left to fix about this night, for a change.

“I see [Sano] making eye contact [with Cano] over in that dugout quite a bit,” Molitor joked. “We’re going to try to clean that up just a little.”