Johnson scored the Florida Marlins’ first run, and they squeezed out another in the eighth inning to beat Halladay and the Philadelphia Phillies 2-1 on Tuesday night.

Johnson didn’t get the win, but he kept his team in the game against the reigning NL Cy Young Award winner, pitching seven innings and allowing only one run — on Ryan Howard’s eighth homer leading off the second.

Chris Coghlan’s single in the eighth drove home the tiebreaking run, which was unearned following an error by shortstop Jimmy Rollins.

Halladay (5-2) gave up only five hits in eight innings, but fell to 1-3 in his four matchups against Johnson. The loss ended Halladay’s streak of wins in 13 consecutive starts against NL East teams since July 5, 2010.

He was pitching in Miami for the first time since last May 29, when he threw his perfect game. Johnson was the losing pitcher that night.

In Atlanta, Jason Marquis earned his 100th career win, backed by a pair of three-run homers from Laynce Nix and Jayson Werth, and Washington held off Atlanta.

The Braves scored five runs in the eighth to nearly wipe out a 7-1 deficit, capped by Dan Uggla’s three-run homer. But Drew Storen got the final three out for his eighth save in eight chances.

Atlanta’s Tim Hudson (4-3) lasted only five innings, his shortest stint of the season, after tossing a one-hit shutout against Milwaukee in his previous start.

Marquis (4-1) pitched into the eighth, giving up seven hits and three runs to improve his career mark to 100-93. The 32-year-old beat his original team, picking up his first 14 wins with the Braves from 2000-03.

In San Francisco, Cody Ross hit a game-ending RBI single in the ninth inning, Tim Lincecum pitched another gem and San Francisco beat Arizona for its fourth straight victory.

Ross’ line-drive single down the third base line off David Hernandez (2-1), scoring pinch-runner Darren Ford from second and sending the Giants pouring out of the dugout in celebration for their third last at-bat win in four games.

Lincecum struck out nine and took a no-hitter into the sixth in another dominating start for the two-time NL Cy Young Award, giving San Francisco back-to-back shutouts and spoiling a stellar outing by Diamondbacks starter Ian Kennedy.

In Denver, Mike Pelfrey hit a tiebreaking two-run double and limited the Rockies to three solo homers, helping New York over Colorado.

The Mets had lost all five of their games to the Rockies this season but finally put together a couple of rallies against their new nemesis to counter home runs by Troy Tulowitzki, Seth Smith and Carlos Gonzalez .

Despite the trio of long balls he served up, Pelfrey (3-3) allowed six hits over 6 2-3 innings and improved to 6-2 lifetime against the Rockies, who have lost seven of nine but remain atop the NL West. Pelfrey’s outing was cut short by a nearly hour-long rain delay in the seventh inning.

Jason Hammel (3-2) entered the game with a 13-inning scoreless streak and the Mets promptly ended that, scoring two runs in the first inning on Ike Davis’ two-run single.

Cardinals 6 Cubs 4: In Chicago, Daniel Descalso hit a two-out, bases-loaded single in the eighth off Kerry Wood and Albert Pujols had four hits, helping Chris Carpenter get his first win of the season as St. Louis beat Chicago.

St. Louis pulled out the victory without manager Tony La Russa, who was undergoing tests at the Mayo Clinic in Arizona. General manager John Mozeliak said the veteran manager had been diagnosed with shingles and wasn’t sure when he’d be back. Bench coach Joe Pettini ran the team.

Carpenter (1-2) allowed four runs and 13 singles over seven innings to get his first win since last Sept. 30. He threw 116 pitches to earn the win in his eighth start of the season. Eduardo Sanchez pitched the ninth for his fourth save in as many chances.

Reds 7 Astros 3: In Houston, Homer Bailey allowed five hits over seven scoreless innings, Jay Bruce had a two-run homer and Joey Votto drove in three runs and Cincinnati beat Houston.

Bailey (2-0), who made his 2011 debut last week against the Astros, struck out five with no walks to get his second win of the year.

Votto had doubles in both the first and second innings to drive in his runs and Bruce connected on his homer off Houston starter Brett Myers in the first inning.

Brewers 8 Padres 6: In Milwaukee, Jonathan Lucroy tied career highs with three hits and three RBIs and Shaun Marcum won his fourth straight decision, lifting Milwaukee over San Diego.

Milwaukee built an 8-0 lead off Padres starter Clayton Richard (1-4) as every Brewers starter had at least one hit for the night before having to hold on late.

Lucroy provided two of the biggest blows with a two-run single in the second and an RBI double in the fourth. He also singled in the eighth after fouling a ball into the dirt that ricocheted and hit him in the jaw.

Dodgers 10 Pirates 3: In Pittsburgh, Matt Kemp hit a three-run homer and Los Angeles broke out of a lengthy hitting slump in a win over Pittsburgh.

The Dodgers posted a season-high 15 hits, including three each by Jamey Carroll and Aaron Miles . Ted Lilly (3-3) had little trouble over six innings as Los Angeles won for just the second time in seven games.

Andrew McCutchen hit two home runs for the Pirates, who were hoping to give themselves some breathing room after making a rare move above .500 on Monday. Instead, they dropped to 18-18 when newfound ace Kevin Correia (5-3) ran into trouble in the sixth.