The A's finished their long trip 5-4, and got their American League West lead over the Angels back to 3 1/2 games.
"That was a big one, no doubt about it," manager Bob Melvin said. "It was a pretty tall task for Milone, and you can't pitch much better than that."
Milone is 4-0 with a 2.00 ERA over his past seven starts. The A's left-hander is 24-3 in 38 career starts when he gets three or more runs of support. Milone allowed one earned run on six hits, struck out four and walked two.
"Tommy was just outstanding," said Vogt, his batterymate. "Name a pitch and a side of the plate, and he hit it tonight. He had all four of his pitches working, he was low in the zone, and he kept them off-balance.
"It's a testament to how well he's been throwing, and how well he threw tonight."
The A's bullpen finished strong. Ryan Cook came on to strike out pinch-hitter David Freese with two on and two out in the seventh. Luke Gregerson stranded two runners in the eighth, and Jim Johnson left two on in the ninth.
Milone (4-3) also got an assist from left fielder Yoenis Cespedes, who showed off his otherworldly throwing arm for the second night in a row by firing from the warning track in the sixth inning to nail Albert Pujols, who was trying to stretch a double after Cespedes misplayed the ball.
The game opened with the opposing center fielders robbing home runs. The Angels' Mike Trout raced to left-center to deny Cespedes in the first inning; in the second, Coco Crisp made a leaping grab in straightaway center to bring back Josh Hamilton's drive.
"Incredible," Milone said of Crisp's catch. "Just the defense, in general, was. I want them to put it in play. That's the feeling I have, I know those guys are making incredible plays.
"For me, just throwing everything for strikes, that was the biggest key."
The A's, who totaled two runs in 23 innings in two losses to open the series, did not take batting practice on the field. They saved their energy for Angels starter Jered Weaver, who gave up Vogt's sixth-inning, two-run shot, and the Angels bullpen, which cracked for three A's insurance runs in the ninth..
"One bad pitch was the difference in the game," Weaver (7-5) said. "Nothing you can do. Sometimes, you gotta tip your cap to the opposing pitcher. He [Milone] did a great job of keeping us off balance and making some big pitches in key situations."
On the 2-2 pitch Vogt hit, Weaver said: "I just tried to throw a down-and-away fastball and it came back over the plate. Obviously, I put it where it shouldn't have been."
Vogt was 1-for-8 in his career against Weaver when he faced him with the A's leading, 2-1, following Jed Lowrie's sacrifice fly.
"He's just dominated me, in the short bit I've faced him this year and last year," Vogt said. "I never know what to do against him. He's thrown me 10 or 12 pitches, and I thought I saw all of them, but I didn't.
"I just tried to see something up. Fortunately, it was a fastball, and I was just able to get to it."
Vogt said Weaver is "freaky, with great stuff. That's not a great recipe for hitters. Fortunately, we were able to put up some runs tonight."
Cespedes matched his season-high with three hits, including a double, and had two RBIs. Crisp had two hits, including a double, scored twice and drove in a run.
Lowrie snapped his hitless streak at 21 at-bats with a fourth-inning single, and had his second RBI in as many nights. Third baseman Josh Donaldson didn't start for the second time this season, but was pressed into duty in the sixth because his replacement, Alberto Callaspo, was ill. Donaldson went 0-for-2, running his hitless streak to 23 at-bats.
"Alberto got sick in the middle of the game, so we had to do that," Melvin said. "I'm trying to give Josh a whole day off. He [Callaspo] just couldn't make it."