OAKLAND, Calif. -- Tommy Milone threw more than 50 pitches before recording the first out of the second inning, and Oakland manager Bob Melvin wasn't sure how much longer his starter would last.
Milone not only stuck it out, he ended the longest losing streak of his career despite the Athletics still having trouble scoring when he's on the mound.
The left-hander overcame his rough start to outduel Ervin Santana and win for the first time in more than a month, and the A's scored twice in the sixth inning to beat the Kansas City Royals 2-1 on Saturday night.
"That was Houdini," Melvin said after Oakland's second straight one-run win. "He was at 50 pitches with three outs, 70 pitches with six or seven outs and he still goes six innings. I've been impressed with a lot of his starts but none more than that."
Milone (4-5) wasn't crisp and pitched with runners on base in all but one of his six innings but kept the damage to a minimum.
The Royals loaded the bases with no outs in the second but Milone got out of it without allowing a run. Elliot Johnson fouled out to first baseman Brandon Moss near the Kansas City dugout before Milone struck out Lorenzo Cain and Alcides Escobar.
Milone worked out of trouble again in the third when he gave up a leadoff double to Salvador Perez before retiring the next three batters.
"I always feel like I'm going to make it out of every inning," Milone said. "I definitely didn't make it easy on myself. Being able to come back and get out of those situations, it feels good at the end of the day."
Milone walked three and had four strikeouts but overcame his uneven performance to win for the first time since April 15. Ryan Cook and Sean Doolittle each pitched a scoreless inning of relief, and Grant Balfour worked the ninth for his eighth save.
That was enough to offset a solid start by Santana.
Santana (3-3) pitched much more effectively than Milone but was denied in his third attempt at earning his 100th career victory. He allowed only three baserunners through the first five innings and gave up just four hits total but got little support.
"He really threw the ball good (but) right now there is no room for error for any of (our pitchers) out there," Kansas City manager Ned Yost said. "We had great opportunities. We just didn't capitalize."
The A's have scored just eight runs over Milone's last six starts and were getting shut out before scoring twice in the sixth.
Moss hit a tiebreaking triple in the sixth off Santana, one of just five hits Oakland managed. Moss was mired in a 4-for-30 slump before tripling over the head of center fielder Cain to drive in Coco Crisp, who had walked.
The A's were also held to two runs for the third consecutive game but made it hold up in front of a rare sellout crowd at the Oakland Coliseum. The A's also beat Kansas City 2-1 on Friday.
Billy Butler singled twice and drove in the only run for Kansas City, which has lost nine of 12.
Oakland didn't get much else but didn't need it.
The Royals failed to score after loading the bases against Milone with no outs in the second. They also stranded a runner at third with one out in the fourth.
"That's Tommy for you," said Sogard, who went 2 for 3. "He battled and kept us in the game. The kid's a fighter."
Kansas City had the tying run on base in the ninth after Eric Hosmer drew a leadoff walk but Balfour retired the next three batters on flyouts.
Alex Gordon doubled with two outs in the first and scored on Butler's bloop single to give Kansas City a 1-0 lead.
Oakland OF Chris Young went 0 for 2 with a walk in his first game back from the disabled list. Young was activated before the game. ... A's 3B Josh Donaldson doubled in the second to extend his hitting streak to a career-best seven games. ... To clear room for Young, Oakland 1B Daric Barton was designated for assignment. Barton hit .143 with one home run and three RBIs in eight games with the A's. It's the second time this season Barton has been designated for assignment. ... RHP A.J. Griffin (4-3) starts the series finale for Oakland in his first career appearance against the Royals. ... RHP Luis Mendoza (1-2), who pitches for Kansas City on Sunday, has a 3.48 ERA in five appearances against the A's.