They patiently waited Hudson out and then quickly pounced on what had been a reliable Arizona Diamondbacks bullpen.
Lyle Overbay hit a three-run double to cap a five-run eighth inning and the Pirates rallied for an 8-5 win over Arizona on Tuesday night.
"Hudson pitched a pretty good game for them today, they got a new guy in there and we were able to jump on him," said Andrew McCutchen, who scored his third run in the eighth. "We didn't give up; we just kept battling."
Arizona was in position for its seventh consecutive road win after Hudson allowed only one earned run through seven innings, but David Hernandez (2-2) did not retire any of the six batters he faced in the eighth.
"Nightmarish would be one word you could use to describe (the eighth inning)," acting Arizona manager Alan Trammell said. "Momentum is a wonderful thing if you're on the good side of it. They got the momentum going in that inning and we tried to minimize the damage but we couldn't."
The Diamondbacks lost for the first time in 25 games this season when leading after seven innings.
"It was a matter of not putting away the first hitter and not getting them to swing and miss," Hernandez said. "I don't worry about command. When you're throwing 93, 94, 95, you just have to throw it over the plate and, a lot of times, they aren't going to hit it. Tonight, they hit it."
Overbay entered the game with four hits in his previous eight at bats but was 0 for 3 against Hudson. His double was his 299th in the majors.
"We had some great at-bats to lead up to that," Overbay said, "and I got into a count where he's got to throw a strike, so I took advantage of it."
Hudson was charged with three hits and one walk. He had seven strikeouts and retired 12 of the final 13 he faced. But with his pitch count at 105, he was lifted for a pinch-hitter in the eighth.
That decision was made by Trammell, the bench coach who managed the Diamondbacks while Kirk Gibson served a one-game suspension.
"(Hudson) did a good job of battling back from a rough start to the game, but we thought seven innings was enough," Trammell said. "We wanted to go to Hernandez and then to (closer J.J. Putz) and hope it was a D-back win, but it did not happen that way."
Reliever Esmerling Vasquez retired all three batters he faced after relieving Hernandez in the eighth -- available because he is appealing his own three-game suspension after he was judged to have been throwing at hitters in Sunday's game against the Washington Nationals after both teams had been warned.
All three of Arizona's home runs were solo shots. Johnson homered for the second consecutive game, giving him a team-high 12, in the first. Miranda's was his sixth, leading off a three-run fifth that also included a two-run double by Johnson.
When Young hit his 11th home run to left to lead off the eighth, it appeared the Diamondbacks were on their way to another win, their 19th in 24 games. Instead, they have a two-game losing streak.
"Shows you how quickly things can change in a game," Harrison said.
After giving up three runs on five hits in the fifth, Pirates starter Kevin Correia's evening was over. He was charged with four runs and eight hits. Correia failed in his attempt to take over sole possession of the majors lead in victories with nine.
"Obviously, it's nice I'm getting a lot of wins," Correia said. "But as long as we're winning the game, that's my job."
Chris Snyder had a pair of sacrifice flies for Pittsburgh. ... The announced attendance was 12,378 in the first Pirates game since an average of more than 36,000 came to each of three weekend games against the Philadelphia Phillies. ... Both teams selected UCLA right-handed pitchers among the first three picks of the draft on Monday.