PHOENIX -- Jose Castillo couldn't contain his excitement over getting back into uniform after an injury.
The Arizona Diamondbacks couldn't contain him at all.
Castillo, playing for the first time since April 6, had three hits -- including a solo homer and an RBI triple -- and scored twice to lead the Pittsburgh Pirates to a 6-2 win over the Diamondbacks on Thursday night.
"A good day for me," he said. "I don't know about tomorrow, but I'll try. I'm working hard."
The Pirates, 3-1 on a 10-game road trip, had 11 hits, two nights after setting a season high with 14 in a 7-4 win over Houston.
"Early on, it was like two or three guys, and now guys like Jack and Craig (Wilson) are starting to heat up," Jason Bay said. "Castillo's back. You know, we don't have a $15 million man and we don't have the three or four big boppers that carry a lot of teams. We need everyone to pitch in."
Bay and Jack Wilson had solo homers, and Dave Williams (2-3) ended his three-game losing streak by holding the Diamondbacks to two runs in a season-high seven innings. He allowed five hits, walked three and struck out three.
"I was glad the offense could do their thing tonight, and I was able to do my part," Williams said.
Arizona's Shawn Estes (2-3) allowed season highs of 10 hits, including the homers by Bay and Jack Wilson, and five runs in 5 1/3 innings. He was replaced by newcomer Kerry Ligtenberg, who allowed Castillo's shot into the left-field grandstand in the seventh for a 6-2 Pirates lead.
"My objective is to keep the ball on the ground," Estes said. "When I'm pitching well, regardless of where, I'm getting a lot of groundballs. Tonight they ended up hitting the ball in the air a lot more."
The Pirates activated Castillo from the disabled list before the game. He injured his left oblique in his first at-bat against Milwaukee in the second game of the year and was 0-for-4 coming in.
He grounded out in his first at-bat, but then singled in the fourth, breaking a 2-all tie when he scored on David Ross' sacrifice fly. Castillo made it 5-2 with his triple in the fifth.
"I didn't think he'd come out and do that. It was certainly nice to see that kind offense," said Pirates manager Lloyd McClendon, who said before the game that he expected Castillo would add pop to the lineup.
Bay gave the Pirates a quick lead when he hit the scoreboard with a 455-foot drive in the first inning, but the Diamondbacks tied it in their half when Craig Counsell led off with a double and scored on Royce Clayton's single.
The teams exchanged unearned runs in the third.
There were two outs when Arizona's Quinton McCracken misjudged Bay's towering fly to center, couldn't backpedal enough and dropped it for a two-base error. Craig Wilson followed with a sharp RBI single to center.
Arizona manager Bob Melvin thought an unusually windy day, which affected fly balls in Bank One Ballpark with the roof and outfield windows open, came into play.
"He just kept going back and back," Melvin said. "Balls that were hit real high were getting in the current up there and kept carrying."
The Diamondbacks answered when Counsell reached on a fielding error by first baseman Daryle Ward and scored on Luis Gonzalez's single.
The Pirates have an extra-base hit in all 27 games. They equaled their season high for homers, set against Chicago on April 15. ... The Pirates have won five of their last seven games in Phoenix. ... Arizona purchased Ligtenberg's contract from Triple-A Tucson before the game and designated reliever Randy Choate for assignment.