The Braves won for the 21st time in their final swing, which leads the majors. They also improved baseball’s best home record to 44-16, maintaining their 2 1/2 -game lead on Philadelphia in the NL East.

With one out, Rick Ankiel fisted a bloop single just over the outstretched glove of second baseman Adam Kennedy . Sean Burnett (0-7) was replaced by Tyler Clippard , who walked David Ross . Clippard struck out Omar Infante , then Heyward hit a liner to left-center.

Billy Wagner (7-2) struck out the side in the ninth.

The Braves’ fourth straight win came hours after they acquired slugging first baseman Derrek Lee from Chicago for three minor league pitchers.

Atlanta starter Tim Hudson and Washington’s Livan Hernandez pitched seven strong innings, allowing two runs apiece, but neither was involved in the decision.

Rockies 3  Dodgers 2, 10 innings: At Los Angeles,  Melvin Mora scored the go-ahead run on one of three wild pitches by reliever Octavio Dotel in the 10th inning, and Colorado nailed a runner at the plate for the final out to beat Los Angeles.

With two outs in the Dodgers 10th and Reed Johnson on first, Scott Podsednik blooped a single in front of center fielder Dexter Fowler . The ball skittered away but Fowler recovered quickly — he threw to strong-armed shortstop Troy Tulowitzki near second base, and his relay to catcher Miguel Olivo beat Johnson by several feet.

Dotel (2-3) walked Mora with one out in the ninth. He stole second on a strikeout by Eric Young , then advanced on a wild pitch to Fowler, who eventually walked.

Mora scored as Dotel bounced another pitch past rookie A.J. Ellis . He uncorked one more wild one.

Rafael Betancourt (3-1) got the win, striking out both batters he faced in the ninth. Huston Street got three outs for his ninth save in 12 chances.

Mets 3  Astros 2, 14 innings: At Houston, Jose Reyes matched a season high with four hits and scored on a sacrifice fly by slumping Ike Davis in the 14th inning to give New York the win.

After Geoff Blum hit a tying home run for the Astros in the ninth, the Mets went ahead without a hit.

Reyes drew a leadoff walk in the 14th, moved up on a sacrifice and stole third. Mike Hessman walked and Gustavo Chacin (1-2) intentionally walked Carlos Beltran for the second time to bring up Davis.

Davis, who grounded into a bases-loaded forceout in the 10th, lifted a fly to right field that put the Mets ahead.

Elmer Dessens (3-1) pitched the 13th for the win. Manny Acosta got three groundouts on five pitches in the 14th for his first save, ending a game that took 4 hours, 18 minutes.

Phillies 8 Giants 2: At Philadelphia, Jimmy Rollins hit a three-run homer and Joe Blanton pitched neatly into the seventh for Philadelphia.

The two-time NL champions have won 20 of 25 and moved two games ahead of the Giants in the wild-card race. The Phillies remained 2 1/2 games behind Atlanta in the East.

Andres Torres and Pat Burrell hit solo homers for the Giants, who have lost three straight.

Blanton (5-6) allowed two runs and eight hits, striking out seven in 6 1-3 innings.

Rollins singled, tripled and homered off Matt Cain (9-10).

Pinch-hitter Domonic Brown hit a solo homer in the eighth for Philadelphia.

Brewers 3 Cardinals 2: At St. Louis, Randy Wolf pitched three-hit ball into the ninth inning and Milwaukee handed 17-game winner Adam Wainwright his first home loss of the season.

Trevor Hoffman struck out Brendan Ryan with the bases loaded to earn his 598th career save. Hoffman came in after the Cardinals pushed across a pair of runs in the ninth.

Rookie Lorenzo Cain had two hits, scored twice and drove in a run. He also had a key steal to set Milwaukee’s first run in the fifth.

After sweeping the mini two-game series, the Brewers are 18-9 at Busch Stadium the last three seasons. The Cardinals have lost four straight to drop out of the top spot in the NL Central.

Wainwright (17-7) gave up three runs and seven hits in seven innings, but missed a chance to become the majors’ first 18-game winner. He dropped to 11-1 with a 1.42 ERA in 13 home starts this season.

Padres 5  Cubs 1: At Chicago, Matt Stairs , taking advantage of a rare outfield start, hit a two-run double and Adrian Gonzalez homered for streaking San Diego.

The Cubs announced after the game that they had traded first baseman Derrek Lee to the Atlanta Braves for three minor leaguers.

Clayton Richard allowed one run and seven hits in 6 2-3 innings for the Padres, who have outscored opponents 53-20 while winning nine of their last 10 games. San Diego (72-47) has the NL’s best record and is 25 games over .500 for the first time since its pennant-winning 1998 season.

The Cubs (50-71) lost their sixth straight home game and are 4-17 overall since July 27. The announced attendance at Wrigley Field was a season-low 33,267.

Marlins 3 Pirates 2: At Pittsburgh,  Josh Johnson shook off a five-game winless streak and withstood two solo home runs over eight innings for Florida.

Dan Uggla hit his 28th homer and Cody Ross and Ronny Paulino both doubled and scored to support Johnson (11-5), who hadn’t won since July 17. Johnson was coming off his worst start in three years, giving up six runs and 10 hits in 3 2-3 innings during a 7-2 loss to Cincinnati on Friday.

Ryan Doumit homered in the second, his second since June 29, and Andrew McCutchen hit his 11th with two outs in the eighth, but the Pirates still dropped their ninth in 10 games.  

Reds 11 Diamondbacks 7: At Phoenix, pinch-hitter Chris Heisey laid down a perfect squeeze bunt, driving in Jim Edmonds with the go-ahead run from third base with one out in the top of the ninth and Cincinnati rallied from a four-run deficit.

Heisey dropped his bunt down the third base line and beat the throw to first base. He eventually scored on a sacrifice fly by Paul Janish , and the Reds, trailing 7-3 in the top of the eighth, struck for eight runs in the eighth and ninth in front of the smallest crowd in Diamondbacks’ history.

Two-run homers from Young and Adam LaRoche gave the Diamondbacks its biggest lead. Only 15,509 were on hand at Chase Field to see them rally from a 3-1 deficit with four runs in the fifth off starter Edinson Volquez (3-2), who was removed after 4 2-3 innings.