MINNEAPOLIS — The Kansas City Royals have won the last six games started by James Shields, though it's hard to tell by looking at his record.

"I think my two-month anniversary was coming up of not getting a win," Shields said Friday night after throwing six solid innings in the Royals' 9-3 victory over the Minnesota Twins.

Shields (3-6) earned his 90th career win, although it was his first in 11 starts.

Shields' previous victory came April 30 in an 8-2 win over Tampa Bay. Since then, the Royals have failed to give Shields much run support. But it was a different story on Friday. Kansas City had a season-high four homers, two from Eric Hosmer, and one apiece from Billy Butler and Mike Moustakas.

Butler started things off with a three-run shot in the first.

"I can't remember the last time Shields has had a lead, I mean seriously, I can't remember," Royals manager Ned Yost said.

In fact, Friday marked the first time since that April 30 win that Shields had a lead of more than one run.

"Is that opening day?" Hosmer joked. "This is what our offense is capable of doing, and we feel confident that we can put up a lot of runs and then put up days like this."

Clete Thomas homered for the Twins, who got another rough start from P.J. Walters (2-4). Walters allowed six runs in three innings, one start after giving up six in the first at Cleveland last Saturday.

The Royals entered the game with the fewest home runs in the majors (43) — two behind Miami — and had given Shields some of the worst run support in the league. But the veteran right-hander had a three-run lead by the time he took the mound for the first time Friday, thanks to Butler.

"I think after that first swing, it really opened us up as an offense and we just kept getting the big hit or the big swing with guys in scoring position," Hosmer said. "Hopefully we can put up more offensive outings like that for Shields."

Shields never allowed Minnesota to get close the rest of the way. Walters, on the other hand, never found a rhythm. Down 4-0 in the third, he allowed a two-run homer to Moustakas and drew a chorus of boos from the home crowd.

"Walters just couldn't make any pitches and couldn't get the ball where he wanted to," Twins manager Ron Gardenhire said. "Just a bad night for him."

Walters has allowed 12 runs in his last 3 2-3 innings.

"We all have games where we struggle," Walters said. "Everybody in the league has them. I've just put two of them in a row together. In my eyes it's unacceptable. To the team I'm sure it is, too."

Anthony Swarzak took over for Walters in the fourth and gave up a solo shot to Hosmer in the fifth. Hosmer got Swarzak again in the seventh, this time with Alcides Escobar on base, for the second multihomer game of his career.

The offensive outburst was a welcome change for Shields, who had been stuck on 89 wins for his previous 10 starts despite putting up quality numbers. He entered Friday night's game with the eighth-best ERA in the AL (2.92), third in innings (111) and eighth in strikeouts (99). But his run support of 3.00 per nine innings pitched was second-lowest in the league.

"This team's been grinding all season long," Shields said. "We won the last six of my games, and I have no doubt in my mind that we're just going to keep going up from here."

The Twins broke through against Shields in the fourth when Justin Morneau hit an RBI double. Morneau came around to score three batters later on a double by Brian Dozier. Thomas led off the fifth with a homer to right.

Shields worked 6 1-3 innings before being pulled for Tim Collins.

NOTES: Rain delayed the first pitch by 26 minutes. ... Hosmer's last multihomer game came on Aug. 31, 2011, at Detroit. ... Ryan Doumit returned to Minnesota's lineup after missing a couple games with a sore ankle. .. Twins RHP Mike Pelfrey (back) is expected to begin a rehab assignment next week with Class-A Cedar Rapids. ... Yost said RHP Felipe Paulino has developed soreness in his throwing shoulder and will not pitch on Sunday as part of his rehab assignment at Double-A Northwest Arkansas. ... The Royals and Twins play the third of their four-game series on Saturday when Wade Davis takes his 4-5 record to the mound against Minnesota's Kyle Gibson, who makes his major league debut.