Milwaukee finished a 10-game homestand 9-1 and have won 10 of the last 11. The Nationals' longest losing streak since moving to Washington now stands at eight.
J.J. Hardy's 19-game hitting streak ended after his final at-bat in the eighth, when he waved wildly at a third strike, but that was the beginning of the end for the Nationals.
Lefty-hitting Prince Fielder singled off left-hander Micah Bowie (0-2), who was lifted for right-hander Jesus Colome. Colome allowed back-to-back singles to Bill Hall and Jenkins, which scored Fielder after catcher Brian Schneider couldn't come up with a throw to the plate.
Hall scored on Colome's wild pitch with two outs to make it 3-1.
ST. LOUIS - Adam Wainwright worked six innings to lead the Cardinals to the win.
St. Louis scored in multiple innings for the first time in seven games.
Aaron Miles had three hits and an RBI and Scott Spiezio had two hits and two RBIs for the Cardinals, who scored two runs in the second, two in the fifth, four in the sixth and one in the seventh. St. Louis completed a 4-2 homestand, getting by before the finale with a pair of three-run innings and a four-spot in the other three wins.
SAN FRANCISCO - David Wright hit a go-ahead, two-run double in the ninth for New York.
Carlos Delgado hit a solo homer into McCovey Cove and doubled in the tying run in the eighth for the Mets, who rallied to win their second straight series. Ruben Gotay also homered.
New York loaded the bases in the ninth against former Mets closer Armando Benitez (0-1).
Jose Reyes got aboard when right fielder Todd Linden and second baseman Ray Durham miscommunicated on a shallow fly and the ball dropped in for a hit. That loaded the bases for Wright, who lined a double down the left-field line.
Dave Roberts homered and Barry Bonds went 0-for-2 and drew two walks for the Giants.
CINCINNATI - Lance Berkman homered for the third straight game and right-hander Woody Williams singled home a run to set up his first victory for Houston.
The Astros improved to 7-1 against the Reds this season, including 5-0 at Great American Ball Park.
Williams (1-5) singled home the tiebreaking run in the fourth inning and held the Reds to a pair of runs - on Adam Dunn's 10th homer - in 6 2-3 innings.
PHOENIX - Ryan Howard hit a pinch-hit grand slam in the seventh inning to lead Philadelphia.
Howard, who entered hitting .198, hit reliever Brandon Medders' (1-1) first pitch 371 feet into the right field seats to erase a 3-0 deficit. It was the fourth grand slam of Howard's career and his fourth pinch-hit homer.
Jamie Moyer (4-2) won the matchup of the oldest lefties in history - the 44-year-old Moyer against Randy Johnson, 43. Johnson struck out nine - including the first six batters he faced - in six-plus innings. In the seventh, he gave up a single to Aaron Roward, hit Chase Utley and walked Pat Burrell to load the bases with no outs. That's when manager Bob Melvin summoned Medders, whose first delivery ended up in the seats.
MIAMI - Brett Tomko took a no-hitter into the sixth inning and earned his first win of the season as Los Angeles beat Dontrelle Willis and Florida.
Tomko (1-3) allowed five hits and three runs in 6 2-3 innings. He bunted home a run on a suicide squeeze to help Los Angeles build a 4-0 lead. Takashi Saito pitched the ninth for his 10th save, converting his 20th consecutive save opportunity over the past two seasons.
ATLANTA - Chipper Jones and Andruw Jones came up with two-out, run-scoring hits in the seventh inning, helping John Smoltz and Atlanta beat Greg Maddux and San Diego in the first matchup since 1992 between the longtime teammates.
Smoltz (5-1) gave up homers to Adrian Gonzalez and light-hitting Geoff Blum before leaving for a pinch hitter with the Padres leading 2-1.
After Kelly Johnson and Willie Harris had two-out singles off Cla Meredith (1-1) in the seventh, Chipper Jones lined the first pitch to the gap in right-center for a ground-rule double and Andruw Jones followed with a run-scoring single to right.
CHICAGO - Jason Marquis retired the first 16 batters he faced and finished with a three-hitter, winning his fifth straight start.
Marquis (5-1) walked none and struck out five in his second career shutout and fourth complete game. He outpitched Pirates lefty Tom Gorzelanny (4-2), who gave up only six hits over seven innings, including a leadoff homer to Alfonso Soriano.
Marquis' bid for a perfect game ended when No. 8 hitter Don Kelly slapped an opposite-field single to left with one out in the sixth.
Ryan Doumit doubled with two outs in the seventh and Jose Bautista singled in the eighth. Soriano's leadoff homer extended his hitting streak to 17 games and it turned out that was all Marquis needed.