Willis beat the Braves 8-0 in Atlanta for his NL-leading 12th win last Thursday, but they jumped on him early this time and finished with three triples.
"Obviously, it's great to pick up a win against that quality of a pitcher, but the nice thing about it was that we made the adjustments," Giles said. "He stuck it to us pretty good the last time in Atlanta."
The left-hander allowed two runs in the first and fell behind 4-0 by the fourth. Willis gave up five runs and a season-high 11 hits in seven innings, raising his ERA from 1.76 to 2.04.
"I gave up a lot early and once we fell in the hole, that guy over there, Sosa, he threw the ball well," Willis said.
Giles' homer was the first allowed by Willis (12-3) in 12 starts since April 23.
"A lot of people haven't been hitting him lately, including us," Braves manager Bobby Cox said. "Sometimes it works out where a really good pitcher has an off night."
Julio Franco had three RBI for Atlanta, which has won seven of eight and 10 of 12.
"We have a lot of confidence right now," Giles said. "The young guys are stepping up and playing well. It's a great feeling."
Florida's Alex Gonzalez went 0-for-3, ending his career-high hitting streak at 17 games.
Rookie Kelly Johnson hit his first major league triple following Rafael Furcal's leadoff single in the first to end a 19-inning scoreless streak by Willis, who pitched his third shutout of the season and fourth complete game in his previous outing.
"Dontrelle has been unbelievable and getting to him early was extremely important," Johnson said. "He was fresh in our heads. We certainly found a way to get to him."
Franco added a sacrifice fly for a 2-0 lead. Giles' homer in the third increased the lead to three, and Wilson Betemit hit an RBI single following Brian Jordan's leadoff triple in the fourth to put Atlanta up 4-0.
"I don't have to make adjustments, they do," Willis said. "They did a good job of making them."
Delgado led off the bottom half with his 15th homer, tying Miguel Cabrera for the team lead.
The Braves got three straight two-out hits off Willis in the seventh, including Andruw Jones' RBI single.
"He dominated us last time and we came back," Jones said. "He's a great pitcher, that's why he's won 12 games already."
Giles hit a sacrifice fly in the ninth. During a downpour, Franco added a two-run triple off Chris Resop, who was making his major league debut.
The rain caused a 43-minute delay with two outs, Franco on third and Resop behind 3-0 against Johnny Estrada.
Only a couple hundred fans remained to see Estrada hit Nate Bump's second pitch for an RBI double when play resumed.
Atlanta had a rain-shortened 7-2 win Monday when that game was called after a 34-minute wait in the eighth.
- Sosa lowered his ERA from 2.97 to 2.78. He threw 54 of 88 pitches for strikes.
- The Braves are 7-3 against Florida this season.
- Gonzalez went 19-for-63 (.302) with one homer and five RBI during his streak.
- Willis made a sensational defensive play in the fourth. He hustled to his left to make a diving catch on Sosa's popped-up bunt near the first-base line and threw to second baseman Luis Castillo to double off Betemit at first.
- Resop allowed four hits and four runs in two-thirds of an inning.