Ramirez, a two-time All-Star shortstop and the reigning National League batting champion, sat a day after being pulled by manager Fredi Gonzalez for failing to hustle. Ramirez, who said he wasn’t loafing, sniped at his manager and teammates in pregame remarks.

Minus their highest-paid player, the Marlins did fine for a day. Johnson (4-1) pitched two-hit ball for seven innings, Cameron Maybin and Dan Uggla had back-to-back home runs and Barden neatly filled in.

Johnson improved to 3-1 with a 1.00 ERA lifetime against Arizona. He struck out nine and walked two.

Billy Buckner (0-1) made his season debut after being called up from Triple-A Reno. The 26-year-old righty, who is not related to the former big leaguer of the same name, was effective early before running into trouble in the fourth.

At Cincinnati, Scott Rolen hit a tying, two-run homer in the ninth inning off fading closer Trevor Hoffman and Joey Votto delivered an RBI single off the wall, rallying the Cincinnati Reds over the Milwaukee Brewers.

The first-place Reds pulled off their 10th win in their final at-bat, this one against a closer who has lost his touch. Milwaukee lost its eighth in a row, its worst slump since 2006.

Hoffman (1-3) came on with a 4-2 lead and failed to retire any of the five batters he faced, walking off the field with a blank expression after Votto’s single.

Hoffman has converted only five of 10 save chances. He is the career saves leader with 596. He has given up 19 earned runs and 21 hits in only 13 innings this year.

Winner Carlos Fisher (1-1) gave up a run in the eighth on a wild pitch.

At Philadelphia, Zach Duke outdueled Roy Halladay with a strong six innings, and the Pirates bullpen held on for a win over the Phillies.

A night after the Pirates gave up 12 runs to the National League’s most potent offense, Duke (3-4) limited Philadelphia to one run in six innings. Evan Meek, Joel Hanrahan and Octavio Dotel retired nine of the final 10 batters.

With a perfect ninth inning, Dotel recorded his eighth save in 10 chances, and snapped the Phillies’ four-game winning streak.

Halladay (6-2), who leads the major leagues in innings pitched, gave up nine hits in his fourth complete game of the season. He walked one and struck out six.

At Atlanta, pinch-runner Brent Clevlen trotted home with the winning run on a throwing error by third baseman David Wrightin the ninth inning as the Braves beat the Mets.

Brian McCann opened the bottom of the ninth with a single to right off Pedro Feliciano (1-2), the Braves’ first baserunner since the third inning. New York pitchers had retired 16 in a row until McCann reached.

After failing to bunt Clevlen to second, Yunel Escobar wound up taking a walk from Jenrry Mejia. Cabrera also failed in two attempts to get down a sacrifice bunt, then hit a high chopper toward Wright. He threw on the run, but the ball sailed into Cabrera and got by first baseman Ike Davis.

Clevlen came in with the winning run while the ball sailed down the right-field line, making a winner of Billy Wagner (3-0).

At St. Louis, Ryan Ludwick homered to snap an eighth-inning tie and reward a resourceful performance by Chris Carpenter in the Cardinals’ victory over the skidding Nationals.

Ludwick hit his sixth homer on a 1-1 delivery from Tyler Clippard (7-3), one pitch after the reliever picked off pinch-runner Brendan Ryanat first. Ryan Franklin worked the ninth for his ninth save in 10 chances.

Carpenter (5-1) had only one perfect inning and allowed his seventh homer in nine starts, matching the total he yielded last season.

At Chicago, Carlos Silva pitched six strong innings to remain unbeaten and Chicago overcame Todd Helton’s first home run of the season to beat Colorado.

Tyler Colvinhad three hits and fellow rookie Starlin Castro drove in two runs for the Cubs, who have a three-game winning streak. With the two-game sweep of the Rockies, Chicago won a series for only the fourth time this year.

Silva (5-0) allowed two runs and six hits. Ryan Theriot had a two-run single for the Cubs.

Rockies starter Jhoulys Chacin (2-2) gave up three runs, five hits and five walks in 5 2-3 innings.

At San Diego, Matt Downs hit a two-run double in the 12th inning and the Giants held off San Diego, beating the first-place Padres for the first time in eight tries this season.

Brian Wilson gave up a two-run double to David Eckstein with two outs in the bottom of the 12th after Chris Denorfia and Yorvit Torrealba singled. Wilson intentionally walked Adrian Gonzalez before he struck out Chase Headley for his 10th save in 11 chances.

Downs’ third hit came off rookie Cesar Ramos (0-1) and scored pinch-hitter Ryan Rohlinger and Eli Whiteside, who reached on two-out singles. Eugenio Velezadded an RBI single.

Dan Runzler (2-0) pitched a scoreless inning for the win.

At Los Angeles, Manny Ramirez, James Loney and Casey Blake each drove in two runs to help keep the Dodgers’ offense humming without the injured Andre Ethier, and Los Angeles extended its winning streak to nine games with a victory over the Astros.

Hiroki Kuroda (5-1) allowed three runs and seven hits over six innings, striking out two and walking one. The victory was the 14th in 17 games for the Dodgers, who placed Ethier on the 15-day disabled list because of a fractured right pinky he sustained four days earlier while taking swings in the indoor batting cage at San Diego’s Petco Park.

Bud Norris (2-5) gave up six runs, seven hits and three walks over 4 1-3 innings in his first career appearance against the Dodgers.