Kyle Gibson cruised until the middle innings, then gave up two home runs. A run scored when shortstop Jorge Polanco was in the wrong spot for a relay. Lefthanded specialist Craig Breslow walked a lefthanded hitter to load the bases.

These moments were prevalent during a historically bad 2016 season, but not enough to slow the Twins down on Thursday. Instead, the Twins came up with some clutch hits and beat Kansas City 5-3 to complete an opening series sweep before an announced crowd of 16,078 at Target Field.

"It's just flowing differently," Twins second baseman Brian Dozier said. "I know it is only three games, but the mentality is different."

Well, it sure beats losing nine in a row to open the season, which happened last year. Winning breeds confidence. Losing breeds counseling.

The Twins left for Chicago after the game 3-0 for the first time since 2007. The good vibes flowed after a dominant series against the Royals.

Twins starters posted a 1.95 ERA in the three games.

Relievers tossed 10 scoreless innings.

The offense scored 21 runs, fueled by 23 walks — their most in a three-game series since April 2014 against Toronto. Jason Castro walked six times.

The Twins scored 14 runs in the seventh inning or later. Their two runs in the seventh Thursday won the game.

The Nos. 6 through 9 hitters in the lineup had a .500 on-base percentage.

Who are these guys?

"The reason last year happened the way it did is that we never picked each other up," Dozier said. "We never did the little things early in games that turned out to be the deciding factor later. Stuff like that goes a long way."

The sixth and seventh innings were pivotal Thursday. In the top of the sixth, Gibson gave up a leadoff homer to Mike Moustakas and an infield hit to Lorenzo Cain before being pulled. Breslow then retired Salvador Perez before walking the lefthanded-hitting Brandon Moss.

Ryan Pressly came in to put out the fire. He got Paulo Orlando to fly out and Alcides Escobar to tap into a force play to end the inning.

"For Pressly to come in and close the door like he did in that inning was huge," Gibson said. "And for the bullpen to keep it going."

The Twins left the bases loaded in the sixth, with Byron Buxton striking out to end the inning. But the Twins broke through in the seventh.

Miguel Sano singled to center, then scored when Castro lined a double to right-center field off lefty Mike Minor. Polanco followed with a double that deflected off the tip of Moustakas' glove at third. Castro scored to give the Twins a 5-3 lead.

Matt Belisle gave up two hits in the eighth but stranded the runners. Brandon Kintzler pitched the ninth for his first save.

"It's a completely different postgame interview if the bullpen doesn't come in and do what it did," Gibson said.

The Twins took a 2-0 lead in the second, but Kansas City scored twice in the fifth, one run coming on Escobar's double as Polanco was caught between setting up for a relay home or for a play to second. Left fielder Danny Santana tried to throw out Escobar at second, enabling Orlando to score from first.

Max Kepler's RBI double put the Twins ahead 3-2 in the fifth before Moustakas' homer tied it.

That set the stage for the late innings, where the Twins excelled against the Royals. That, manager Paul Molitor said, should reinforce what they worked on during camp.

"We talk about perspective a lot," Molitor said, "but obviously you come out and are able to beat a good team three games in a row to start your season. It makes you feel pretty good. A lot of good things again. We played a clean game. A little bit of a hiccup on the relay play. Other than that, we made a lot of good plays."