The veteran right-hander pitched four scoreless innings in his most effective start of the spring, and Michael Saunders drove in a pair of runs with a double as part of a four-run sixth inning to lead the Mariners over the Kansas City Royals 6-2 Wednesday night.
Millwood, who allowed at least a run in each of his first two outings, wasn't always sharp against the Royals -- he allowed three walks but just one hit while throwing 53 pitches.
"First two innings I was just missing up. I was just drifting toward the plate too early," Millwood said. "Fixed that between the second and third. Third and fourth inning, got the ball down good and pitched the way I needed to."
He had given up three runs in a relief appearance on March 3 and then allowed one run and four hits in three innings last Thursday.
"When things aren't exactly the way you want them, you've got to be able to make pitches at some point," Millwood added. "I'm definitely not ecstatic about the outing by any means but I'm happy that when I needed to, I was able to make a pitch and keep us in the ball game."
Saunders, who is making a strong push to open the season as the starting center fielder, raised his batting average to .417 and Ichiro Suzuki had two hits.
"He's had a great spring. He looks like a totally different hitter," Mariners manager Eric Wedge said of Saunders. "He's up there ready to hit, he's stronger, he's got a little swagger to him, more presence at home plate."
High-level prospect Vinnie Catricala also knocked in two runs with singles in the fourth and sixth innings as the Mariners improved to 10-3 this spring.
Royals starter Aaron Crow, an All-Star reliever last season, went three innings and allowed two runs on two hits, walking two with two strikeouts.
"First two innings couldn't have gone any better," Crow said. "Fourth inning, can't get behind a hitter like Ichiro. It's something I'll learn from and get better."
The Mariners led 6-0 before Kansas City scored a pair of unearned runs off Oliver Perez.
Jonathan Broxton struck out two in one inning of work in his spring debut for Kansas City.
The Royals were playing for the first time since learning catcher Salvador Perez will have to undergo surgery sometime this week for a torn meniscus in his right knee and miss perhaps a month. Brayan Pena started behind the plate Wednesday.
"It's terrible for the team. Salvador's a great catcher and we're going to feel it, but Pena is more than capable of stepping in," Crow said. "I think everybody's confident in him and I think we'll be OK."
Mariners SS Brendan Ryan left the game after the top of the fourth inning with tightness in his left quadriceps. Ryan ran hard around second base on a flyout and was slower to get back to first in the bottom of the third. ... Seattle LHP Jason Vargas, slated to start the team's second regular-season game in Japan on March 29, threw in a minor-league intrasquad game. He allowed two runs and eight hits in 6 1/3 innings, striking out five and walking one. ... Former Mariners All-Star OF Mike Cameron will throw out the ceremonial first pitch on opening night on April 13 at Safeco Field. Cameron, who spent 17 years in the major leagues before retiring last month, played for the Mariners from 2000-03. ... With two catchers down due to injury, the Royals added two -- Ryan Eigsti and Ben Theriot -- from their minor-league camp for spring games.