With both starters gone, the Angels scored twice in the eighth on a sacrifice fly by Mike Napoli and an RBI single by Robb Quinlan behind singles by Torii Hunter and Garret Anderson.
As the Angels reclaimed the American League West lead by a half-game over the A's, the loss went to Octavio Dotel (1-2) in another case of justice not being properly served.
It was Dotel to the rescue of Danks in the seventh, striking out Erick Aybar and Vladimir Guerrero to leave the bases loaded -- and prevent Weaver from getting the win that came to Shields (2-0) with an inning or relief before Francisco Rodriguez claimed his Major League-best 16th save.
"He deserved a win," Hunter said of Weaver, who remained at 2-5 while shaving his ERA from 5.59 to 4.86. "We just couldn't get the runs, because Danks pitched good, too."
Danks and Dotel. Coming up to open the eighth against Dotel, Hunter was committed to doing whatever he needed to get on base in front of the smoking-hot Anderson.
"He throws 90, 91, but it plays 95 with his delivery," Hunter said. "I had to do something. I tried to stay out front and go to right -- and I got one to fall."
Dotel gave way to southpaw Matt Thornton, who brings the heat. Anderson went ahead 3-0 in the count, and manager Mike Scioscia flashed the hit sign. Anderson took it literally, hitting a drive to right that fell away from a tumbling Jermaine Dye, sending Hunter to third in the Angels' way.
"That was an ambush," Hunter said of Anderson's big hit.
White Sox manager Ozzie Guillen stuck with the lefty against Napoli, who lifted the sacrifice fly to center to break the deadlock. Right-hander Scott Linebrink was summoned to face Quinlan, who went the opposite way for his second single of the night.
"Two runs for Frankie, that was big," Weaver said.
K-Rod struck out former teammate Orlando Cabrera and Dye with curveballs to end the game, a double by Carlos Quentin off the center-field wall with one out turning out to be a temporary distraction.
While the "W" next to his name would have been a nice reward, Weaver was focusing on the larger picture.
"It's a team game, and our team won today," he said. "It's all that matters."
It also matters, immeasurably, that this was the Weaver who broke in to the Major Leagues in 2006 with wins in his first nine decisions -- something that hadn't been done in more than a half-century, when a young Whitey Ford did nothing but win for the vaunted Bronx Bombers.
Weaver reached 95 mph on the radar gun in blowing away two of the three men he faced in the first inning, his serious demeanor the reflection of a man on a mission.
"That's very encouraging," Scioscia said, Weaver having shaken off consecutive losing starts in which he surrendered a total of 12 earned runs in 10 1/3 innings. "That's the best stuff he's had in two years.
"He knows the league; he's got that experience. When he brings his game to the mound, he can pitch the way he did tonight every time out."
A high pitch count -- 109 deliveries, 67 for strikes -- accounted for Weaver's exit after seven near-perfect rounds.
His fastball crackling and his offspeed stuff keeping hitters off-balance, Weaver didn't allow a hit until A.J. Pierzynski lined a leadoff single to center in the fifth.
"Weaver was pretty good," Pierzynski said. "He didn't make a whole lot of mistakes and didn't really fall behind a whole lot of hitters. But, at the same time, we have to find a way to get something going -- and tonight we didn't do that."
After Pierzynski's hit, Guerrero ran down Juan Uribe's deep drive to right-center to end the inning -- and the closest thing to a White Sox threat.
"I know he's been tinkering with some things in his delivery," Scioscia said of Weaver. "I think he took the mound with the confidence of a guy saying, `I feel my stuff coming back -- and I'm going to execute pitches.'
"He had a sense of purpose in the way he came to the park, the way he warmed up. He felt good about that."
Danks, who has yielded two or fewer earned runs in seven of his eight outings, was tough when it counted.
The Angels had opportunities in the early innings but couldn't capitalize. Aybar's first-inning double, wasted, came after center fielder Nick Swisher had run down Gary Matthews Jr.'s deep drive.
In the third, Sean Rodriguez was hit by a pitch and Matthews walked, but Aybar struck out and Guerrero hit into a double play. Two-out singles and steals by Matthews in the fifth and Anderson in the sixth proved fruitless.
But then came the eighth, and three White Sox relievers couldn't contain the Angels after Hunter and Anderson got things rolling.