The Padres completed a three-game sweep of Chicago and finished the season 7-0 against the Cubs. Their last sweep at Wrigley came in September 1992.
Brian Giles walked five times, tying a major league record in a nine-inning game for San Diego, which has won 14 of its last 15 games. The Padres also have won eight straight on the road.
Chicago has lost 14 of its last 16 games.
Hensley (2-2) retired 11 straight batters until giving up a double to Michael Barrett in the fifth inning. He threw 92 pitches, with two strikeouts and one intentional walk.
Rich Hill (0-3) lasted 5 1-3 innings, allowing three runs on four hits, striking out four and walking five.
Nationals 8, Braves 1
At Atlanta, Tony Armas pitched three-hit ball over seven innings, Alfonso Soriano homered and Washington took advantage of a careless defensive play by Adam LaRoche.
Armas (4-2) dominated a team that scored 14 runs while winning the first two games of the series. He gave up three singles, struck out six and escaped his only serious jam by striking out Chipper Jones with the bases loaded in the third.
Soriano led off the third inning with his 12th homer and singled in two more runs in the sixth.
The Nationals blew it open against John Thomson (1-3) with four unearned runs in the fifth -- all of them scoring after LaRoche fielded a routine grounder but nonchalantly jogged to first base on what should have been the third out.
Nick Johnson hustled down the line, and first-base umpire Mark Carlson ruled the runner safe. Television replays were inconclusive, showing LaRoche stepping on the bag at about the same time as Johnson.
LaRoche turned around in disbelief when Carlson made the safe call, and manager Bobby Cox came out to argue. Cox was ejected after the inning, clearly disgusted that the Nationals followed LaRoche's error with three straight hits.
Marlins 8, Pirates 2
At Pittsburgh, Brian Moehler won for the first time in 23 games since last July, taking a shutout into the eighth inning as Florida opened an early eight-run lead.
Miguel Cabrera, the only proven veteran hitter in a Marlins lineup which features mostly rookies, hit a three-run homer during a five-run second inning against Ian Snell (2-3) which helped make it 8-0. Snell hadn't allowed an earned run in his previous two starts at home, only to give up seven runs and seven hits in 1 1-3 innings.
Moehler (1-4) came into the game with some of the worst numbers of any starting pitcher in the majors -- an 0-4 record, 9.76 ERA and .368 opponents batting average. But he was in control from the start against the Pirates, who now own the NL's worst record at 11-27.
Astros 3, Rockies 0
At Houston, Andy Pettitte pitched a three-hit shutout and Morgan Ensberg and Lance Berkman homered to lead Houston.
The shutout is Pettitte's first with Houston and his first since June 2002 with the New York Yankees against the New York Mets. It was the left-hander's first complete game since August 2003 against Seattle.
Pettitte (3-4) struck out seven and walked one. He zipped through the first two innings, retiring the first six batters he faced, including striking out the last two. Brad Hawpe got a single to open the third before Pettitte struck out the next two batters.