MIAMI (Reuters) - Two of the National League's best pitchers matched each other pitch-for-pitch until the Florida Marlins manufactured a run in the eighth inning for a 2-1 win over their divisional rival Philadelphia Phillies on Tuesday.

Marlins starter Josh Johnson gave up a solo home run to Ryan Howard to lead off the second inning but the Phillies failed to capitalize further in the inning despite having the bases loaded with no outs.

Johnson recovered by striking out Dane Sardinha and Halladay before inducing Jimmy Rollins into a ground ball out.

"And it seemed I kept getting behind guys. But that's what I've been dealing with lately, getting behind. But you have to find a way to battle."

Johnson allowed just one more hit before being replaced after the seventh inning with the score tied.

Phillies starter Roy Halladay had been stung in the third inning when he walked Johnson, who then scored on a sacrifice fly by Emilio Bonifacio.

Halladay then gave up an unearned run in the eighth inning when Marlins' second baseman Omar Infante reached base on a throwing error by shortstop Jimmy Rollins to lead off the inning. Infante advanced to second on a wild pitch by Halladay and later scored on a RBI single by Chris Coghlan.

"Sometimes you knock them down and don't come up clean," Rollins said. "But when you have time to make a throw, you have to make the throw. I didn't make the throw.

"A good throw he's out. He's not a flyer. I just didn't make the throw."

Mike Dunn pitched the eighth for the Marlins to pick up the win and Leo Nunez earned the save with a scoreless ninth inning.

Johnson allowed six hits while striking out seven and walking three.

Halladay struck out nine, walked two and allowed five hits but took the loss after the wayward eighth inning.

(Reporting by Mike Mouat in Windsor, Ontario. Editing by Greg Stutchbury)