PHOENIX -- With NL ERA leader Dan Haren starting, Chad Tracy figured he would have a light night on the Arizona Diamondbacks' bench.
"When he is on the mound and you are a pinch-hitter that night, you don't expect to hit. If at all, maybe in the eighth or ninth," Tracy said.
He was ready in the seventh and came through.
Tracy's three-run homer capped a five-run seventh-inning in Arizona's 11-4 comeback victory against Pittsburgh on Thursday night. It was a rare off night for Haren, who allowed eight hits and four runs in five innings, his shortest outing of the season.
"It just proves he's human," Tracy said.
Tracy hit a 2-0 pitch from reliever John Grabow for his sixth home run of the season to give Arizona a 9-4 lead.
"You have to be aggressive. Most of those guys coming out of the pen are pretty filthy, and they know they only have one inning, so they are letting it all fly," Tracy said.
"You don't want to get behind. If you get a good pitch to hit, take a whack at it. It was just my night."
Mark Reynolds doubled with one out in the seventh off Evan Meek (1-1) before hot-hitting Miguel Montero doubled to right-center for a 5-4 lead.
Josh Whitesell greeted Grabow with a run-scoring single, and after Augie Ojeda walked Tracy hit his second pinch-hit home run in 17 days. He had a game-tying, two-run homer against San Diego on July 6.
Montero is hitting .359 with six doubles, five home runs and 13 RBI in July, leading major league catchers in average, home runs and slugging percentage over that span. Reynolds is hitting .481 since the All-Star break.
"He's picking us up at the right time," shortstop Stephen Drew said of Montero.
Justin Upton hit a two-run homer, his 17th, in the eighth.
Juan Gutiererz (3-2), the third of four Arizona relievers, won for the second time in three days after pitching a 1-2-3 seventh. The Diamondbacks bullpen pitched four scoreless innings and retired all 12 men it faced.
Haren, who entered with a major league-leading 1.96 ERA, still leads the NL with a 2.14 ERA, but Kansas City's Zack Greinke took over the major league lead at 2.08.
"They took the momentum, and then we took it away from them," Haren said.
The Pirates scored all their runs off Haren with two outs in the fifth for a 4-1 lead. Pirates starter Charlie Morton hit a one-out single to center and took third on Andrew McCutcheon's double off the fence in right-center.
Garret Jones hit a two-out, two-run double to left before Ryan Doumit hit a 3-2 pitch for his fifth home run of the season. Jones has three hits in each of his past two games, and has eight hits in his past four games.
"My command wasn't as good as it has been. I couldn't make a pitch to put them away, but that's the way things go," Haren said.
Ojeda singled to open Arizona's three-run fifth before scoring on a one-out triple by Drew, who is 9 for 17 since being moved to the leadoff spot after second baseman Felipe Lopez was traded to Milwaukee on Sunday.
Gerardo Parra followed with his fourth home run to tie the game at 4.
"We didn't pitch very well all around," Pirates manager John Russell said. "This is one of those games where we couldn't get it done."
Drew's triple was his sixth of the season and Arizona took over the NL lead with 28, one more than Colorado. ... Pittsburgh recalled 1B Steve Pearce from Triple-A Indianapolis before Thursday's game to fill the roster spot opened when 1B Adam LaRoche was traded to Boston on Wednesday. Pearce is in his second stint with the Pirates this season after going 1 for 12 (.083) with a double in nine games from June 21 to July 8. ... The Chase Field roof was closed Thursday when the temperature at the 6:40 p.m. start time was 103 degrees. It was 82 inside.