"A lot of good things going, a fun ballgame," said Twins manager Ron Gardenhire. "Joe played super, and it always starts with starting pitching."
And the Twins got pitching -- from Gibson (11-9) to Casey Fien to Glen Perkins. Gibson stymied a club that had scored 10 runs on the Twins the night before. Gibson allowed only six hits in 7 2/3 innings.
"He was in command," said Gardenhire. "Didn't overthrow too much. He had a good moving fastball, his slider was good. His changeup was decent. He kept pouring it in there and didn't let them breathe much.
"A great ballgame. I knew he was disappointed because he didn't finish it. I knew by the seventh inning he wanted to finish it. A great performance."
Gibson did not allow a run until his final batter, when Chris Carter singled in Jose Altuve with two outs in the eighth. Fien then shut the door on the Astros, retiring Dexter Fowler on a groundout to second. Perkins pitched a scoreless ninth for his 30th save and second in the three-game series.
Gibson, who threw 105 pitches, was unable to get a complete game, but the right-hander wasn't overly disappointed in not going the distance.
"It's never too frustrating when you win a game," said Gibson, who struck out four and walked two. "I definitely wanted to finish. That last inning I knew each pitch was important to keep the pitch count down and go back out there in the ninth."
But with two outs in the eighth, Altuve had an infield single, and advanced to second base on a wild pitch with Carter at the plate. Carter, who hit two home runs on Tuesday, hit a bloop single to left-center that scored Altuve for Houston's only run.
Mauer had two hits, including his third home run of the season leading off the sixth inning to break a scoreless game. His single in the first inning was the 1,500th of his career, becoming the sixth Twin to reach that plateau. He reached base safely in 7-of-14 plate appearances in the series after being taken off the disabled list on Monday.
"I hope it keeps going," said Mauer. "I feel pretty good. It was good to win the series and head back home after an off-day."
The Twins got to reliever Josh Fields, who replaced Houston starter Brett Oberholtzer in the eighth. Fields intentionally walked Mauer to set up a bases-loaded, no-out situation with Minnesota up a run. Vargas followed with a two-run single scoring Santana and Brian Dozier, giving the Twins a 3-0 lead.
Mauer's home run off the left-hander Oberholtzer landed in the Houston bullpen in right-center. Oberholtzer (4-8) allowed only one run in seven innings, but he was up against Gibson, who had command of his pitches and benefitted from some timely hits.
"[Gibson] was just tremendous over there and [it's] fun to pitch in a duel like that," said Oberholtzer. "Our guys were definitely frustrated facing him. Sometimes, their guy is just pretty good."
Mauer's first-inning single on Wednesday extended his hitting streak to a season-high 15 games. The hitting streak is one shy of his career-high 16-game hitting streak from Aug. 4-24, 2008. The Twins first baseman hit safely in all three games in the series.
Eduardo Escobar doubled in the third inning, giving him three doubles for the series.
In Houston's seventh inning, Jon Singleton was stranded on third base representing the tying run. The Astros had runners on first and second with no outs when third baseman Trevor Plouffe started a 5-4-3 double play with Matt Dominguez batting. Gibson then got Jake Marisnick to fly out to Santana in center to end the threat.
The Twins completed a stretch where they have played 13 of their last 15 games on the road. After a day off on Thursday, the Twins on Friday start an 11-game homestand against Kansas City, Cleveland and Detroit.
"Hopefully this can be a good finish to a season," said Gardenhire. "We can come on and irate the living fire out of some people and play some good baseball. Especially at home."