Roy Halladay's margin for error is thin these days. Maybe that's why he decided to chat with home plate umpire Tony Randazzo before the second inning began Thursday night. Halladay allowed a run in the first to Florida and apparently disagreed with a few of Randazzo's calls.

Halladay likely had a feeling one run could matter on a night like this one at Citizens Bank Park.

Marlins ace Josh Johnson outdueled Halladay and Florida won, 2-0. The Phillies were shut out for the seventh time in 2010, equaling their total for all of 2009.

And it marked the fourth time in Halladay's last six starts that the Phillies lost.

It hurts anytime the Phillies ruin a good pitching performance (a feat accomplished often of late). But it's even worse when Halladay, the $60 million arm, is on the mound. He's the ace and the Phillies expect to win every time he pitches.

This time, Johnson was the better pitcher.

He was dominant Thursday, allowing three hits. After yielding a double by Shane Victorino to lead off the third, Johnson retired the final 17 batters he faced. But after the righthander had thrown 113 pitches through eight innings, Florida manager Fredi Gonzalez chose closer Leo Nunez to pitch the ninth.

Nunez allowed a double to Placido Polanco but induced a groundout from Chase Utley, then struck out Ryan Howard to end the game.

Yet again, the Phillies failed to score for Halladay. In Halladay's last six starts, the Phils have scored 11 runs (1.8 per game). Heck, the only run the Phillies scored in his perfect game against the Marlins was unearned.

He would have taken even that on Thursday.

In the first, Halladay quickly erased any drama of pitching a second perfect game against Florida. He put the first three runners on - a single by Chris Coghlan, a single by Gaby Sanchez and a walk to Hanley Ramirez.

Jorge Cantu hit a sacrifice fly to right, scoring Coghlan. Halladay came away relatively unscathed, considering that the bases had been loaded with none out.

But he had already given up too much.

After the shaky first, Halladay didn't allow more than one base runner in any inning. He allowed the one earned run, struck out eight and walked just one. He threw 118 pitches, 76 for strikes, and yielded six hits. He likely could have pitched his major-league-leading sixth complete game of the season, but manager Charlie Manuel pinch-hit for Halladay in the eighth.

Halladay's season ERA stands at 1.96. Johnson's is slightly better at 1.91.

The Florida righthander, a hard-luck loser when Halladay pitched his perfect game May 29 at Sun Life Stadium, won for the fifth time in 11 career starts against the Phillies. In 15 innings against the Phils in 2010, Johnson has yet to allow an earned run.

He easily dispatched the middle of the Phillies' order. Utley, Howard and Jayson Werth were a combined 1 for 8 against Johnson. Werth, who was benched by Manuel on Tuesday for a mental rest, was 0 for 3 with two strikeouts.

In the first inning, Utley walked and Howard hit a pop fly to short left field that became a double thanks to the shift. But Werth struck out to end the inning.

For the next seven innings, not another Phillies' runner reached third.