– A long Monday for Joe Mauer began with a 6 a.m. wake-up call in St. Paul and a cross-country flight, included lots of hellos and even an unexpected goodbye, and ended in the best way possible: with a game-winning hit.

“Just a crazy day,” said Mauer, who was restored to the roster shortly before the game’s first pitch after nearly six weeks out of action with a strained oblique muscle. “I’m really happy to be back.”

The Twins are, too. Mauer lined a sharp single through the hole at short in the ninth inning, driving home Jordan Schafer with the tiebreaking run (and Brian Dozier, all the way from first, with a bonus run, thanks to some poor Astros decisionmaking), capping a 2-for-4 return with a 4-2 victory over Houston.

“We’ve always said, this guy can get right out of bed and hit,” manager Ron Gardenhire said after the Twins won their fourth straight game in Minute Maid Park. “He’s got that swing. Luckily for us, he’s come back with it.”

Too bad Josh Willingham wasn’t there to see it. A roster spot was opened for Mauer just before game time when the slugging outfielder was traded to Kansas City, a transaction that deflated the clubhouse, where Willingham was among its most popular residents.

“It’s been a long, mixed-emotions type of day. Willingham was one of my favorite teammates,” said Mauer. “A great guy. … We’re definitely going to miss him.”

But they’ve got new teammates to get to know now, too. Such as Tommy Milone, who demonstrated Monday that he knows how to pitch out of trouble. The lefty, acquired from the A’s on July 31, delivered six strong innings in his Twins debut, and while he allowed a hit in all six innings, eight in all, plus three more walks, he stranded nearly all of them.

“I was a little amped up at the beginning. I thought they were doing a good job of getting on base and forcing the issue,” Milone said. “I told myself to settle down and make good pitches, and I felt I was able to.”

Houston loaded the bases in the second inning, but Milone got leadoff hitter Robbie Grossman to hit into a double play to end the threat. He picked off a runner to end another one. And he held Houston to 0-for-5 with runners in scoring position.

Only problem: Sometimes hitters guess right about those 88-mile-per-hour fastballs, or the 80-mph changeups. Jose Altuve did, and lined a home run into left field in the first inning. Chris Carter got two straight changeups in the fifth inning, and deposited the second one 10 rows deep.

But for all the baserunners, neither home run came with anyone on base. Milone turned over the game to the bullpen in the seventh inning, tied 2-2.

That’s where it stood in the ninth, when Schafer drew a one-out walk, then stole second base. After a pop-up, Brian Dozier walked, too, bringing up Mauer, who in his first big-league action since July 1 had already walked, doubled high off the wall in left and smashed a line drive that turned into a double play.

“He was pumping it in there pretty good,” Mauer said. “I was just telling myself to stay short and not do too much.”

He didn’t, singling in Schafer and driving Dozier to third, where he watched left fielder Domingo Santana hold the ball, and hold it, and hold it. Finally, Dozier broke for the plate, beating his throw.

“That’s a heads-up play,” Gardenhire said. “It was a great way to win a ballgame.”