The Florida Marlins ace allowed only two hits in seven innings to help beat Pittsburgh 6-0 Tuesday night.
"If you're going to start a franchise and pick a pitcher, you're not going to go wrong picking him," Pirates manager Clint Hurdle said.
Johnson held Pittsburgh hitless until Garrett Jones singled off the right-field wall to start the fifth inning. The Pirates' only other hit was a single by pinch hitter John Bowker in the sixth. Both runners were erased on double plays, and the Marlins faced only one batter more than the minimum.
"You're going to have those games in the big leagues," Hurdle said. "There's a handful of pitchers that stop you. Maybe you catch them when they're off, get some men on base. We didn't have either one of them tonight."
Jones' hit came on a 1-1 count and was the hardest-hit ball for the Pirates.
"It was a fastball down and in," Jones said. "He was pitching me in most of the game. I was anticipating a heater and got one and put the good part of the bat on it."
Paul Maholm (0-3) allowed six runs and lasted only 3 2-3 innings, his shortest outing in four starts.
"It stinks. I didn't give the team a chance to win," Maholm said. "Facing Johnson, you've got to be good and I wasn't."
Johnson (3-0) lowered his ERA to 1.00. He has allowed four hits or less in each of his four starts, and batters are hitting .112 against him.
Even so, he said, he can do better.
"Why not?" he said. "There's always room to improve."
That's true: The right-hander has never thrown a shutout in 108 career starts. He was pulled by manager Edwin Rodriguez after throwing 98 pitches, 64 for strikes, and was fine with the decision.
"We were in agreement up 6-0," Johnson said.
The Pirates came into the game batting .288 on the road. Against Johnson and two relievers, they struck out 12 times and were shut out for the second time this season.
But the Pirates expect to rebound quickly.
"We've done a pretty good job of coming back and playing hard the next day trying to scratch out a win," center fielder Andrew McCutchen said. " We'll shake this off and put a new pair of clothes on and get ready."
Johnson — who batted .085 last year — then lined a pitch over the second baseman, and two runs scored.
"He Little-Leagued us," Hurdle said.
Johnson contributed on defense, too, hustling to cover first and complete a nifty 3-6-1 double play. First baseman Gaby Sanchez fielded the ball and then dove out of the way so Johnson could catch the return throw.
"I was like, 'I got it,' and just hoping he heard me," Johnson said with a laugh. "If he had stood up a second longer I might not have seen the ball, because they threw it right over the top of his head."
NOTES: Marlins LF Logan Morrison left the game in the fifth inning with a strained arch in his left foot. He wore a boot afterward but said he hopes to be back in the lineup within a couple of days. ... Slumping Pirates 3B Pedro Alvarez, who was given the night off Monday, was back in the lineup and went 0 for 3 with two strikeouts. ... The Marlins, who went 34-15 against lefties last year, improved to 2-4 against them this year.