Just plenty good.
The two last met on May 29 in Miami, when the Phillies ace threw the 20th perfect game in major league history in a 1-0 win.
This time, Johnson (7-2) gave up three hits, walked one and struck out five as the Marlins ended a four-game losing streak.
"I wasn't trying to match up with him pitch-for-pitch," Johnson said. "I just wanted to pitch my game and see what happens. I was ready to go tonight."
Halladay (8-4) was brilliant, too, allowing one run and six hits in eight innings. He fanned eight and walked one. His bid at perfection ended quickly when Chris Coghlan singled to start the game.
"When Coghlan got the hit, the whole dugout cheered," Johnson said.
Gaby Sanchez followed Coghlan with a single and Hanley Ramirez walked to load the bases with no outs, setting up Jorge Cantu's sacrifice fly. Halladay turned off the faucet, striking out Dan Uggla and retiring Cody Ross on a grounder.
"It's tough coming in when you know what you obviously know what you're in for," Halladay said. "You try to limit it as much as possible. He's one of the pitchers right now. He's been on a roll, so that makes it tough. I'm not concerned. There are a lot of players in here that know how to win. Nothing worthwhile is every easy."
Halladay and Johnson each lowered their ERAs to under 2.00.
Uggla hit his 14th home run of the season off Danys Baez in the eighth.
Johnson escaped a first-inning jam by striking out Jayson Werth, then retired 17 in a row after allowing a one-out double to Shane Victorino in the third. Johnson was pulled after 113 pitches. He has surrendered one runs or no runs in he previous six starts.
"I saw a couple of empty seats in right field," said Marlins manager Fredi Gonzalez. "They missed a hell of a game. J.J. had command of his fastball and had a good sinker. He was outstanding. Halladay minimized the damage in the first inning and J.J. matched him. That's what you have to do to beat Doc."
A game after scoring 10 runs, the Phillies were shut out for the seventh time this season, matching their entire total from 2009. Though their offense has stalled over the past few weeks, few teams can solve Johnson.
"When you don't score, you're not going to win the game," Phillies manager Charlie Manuel said. "Johnson is one of the better pitchers in our league. We didn't hit many balls hard. Outside of Raul Ibanez [who singled in the second], I'm trying to think of another ball we hit hard. We couldn't get to him."
As for getting blanked seven times already, Manuel said, "I never thought about getting shut out that many times."
Said Howard: "It was two great pitchers tonight, so we knew base hits were going to be tough to come by."Notes
- The Phillies announced that Wednesday night's rainout against Florida will be made up as part of a day-night doubleheader on Sept. 6. The first game is scheduled for 1:05 p.m., followed by the regularly scheduled 7:05 start.
- Coghlan, the 2009 NL Rookie of the Year, extended his hitting streak to 10 games.
- Marlins OF Mike Stanton, who got three hits in his major league debut Tuesday, went 0 for 4 with two strikeouts.