"We were talking before the game about how I haven't hit one for the Pirates," said Nady, acquired from the New York Mets on July 31 for pitchers Oliver Perez and Roberto Hernandez.
"I said, 'I hope I get it out of the way. You don't want to start changing your swing and getting into bad habits.' When you haven't hit one in a while, you tend to start pressing and changing your swing," he said.
The last-place Pirates improved to 17-15 since the All-Star break and sent Cincinnati to its third loss in four games. The Reds began the day leading the NL wild-card race.
"I think everybody knows Pittsburgh is much better than their record," Reds manager Jerry Narron said. "They've played a tremendous number of close games."
Snell (11-8) was roughed up for 10 hits and four runs at Cincinnati in his first appearance of the year on April 6. This time, he allowed four hits and one run in seven innings, striking out five and walking four.
Snell's 11 wins are three more than anyone else on the Pirates' staff and one more than the team-high 10 recorded by Dave Williams last season.
"I had to keep the ball down," Snell said. "The strike zone was small, but the umpire was consistent. It was small for both sides. I told myself to stop throwing like a little girl -- to stop trying to place the ball. I told myself before the game to try to place the ball. The last time I pitched here, I tried to overpower everybody, and it didn't work."
The Pirates took a 2-0 lead in the second against Chris Michalak (1-1), making his first major league start since 2001 with Toronto. Nady scored on a balk and Snell had an RBI grounder.
Snell later got his first career extra-base hit in 49 at-bats, a double in the seventh. By then, he had enough support.
"In the early going, he had trouble locating his fastball for strikes," Narron said. "He settled down and pitched really well after they scored some runs for him."
Javier Valentin homered and hit an RBI single for the Reds. Edwin Encarnacion added his 14th homer and sixth in his last seven games.
Sanchez and Jason Bay singled with one out in the third. Nady followed with his 15th home run of the season, and first in 15 games for Pittsburgh.
"That three-run homer by Nady was as big an at-bat as we've had of late," Pittsburgh manager Jim Tracy said. "We were talking before the game about how we've had a lot solo home runs, and to get one with runners on base is really big."
The Pirates loaded the bases with no outs against Michalak in the fifth. Reliever Bill Bray walked Jose Castillo with one out to force home a run.
Michalak, who got the win in relief last Saturday in his first major league appearance since 2002, allowed nine hits and six runs.
"My location wasn't as good as I needed it to be, or as consistent as I needed it to be," Michalak said. "I made some decent pitches, but I wasn't able to consistently make the pitches I made the other night."
Wilson led off the sixth with his eighth homer of the season and first in 46 games.
- Sanchez extended his hitting streak to 10 games (18-for-37, .486).
- CF Ken Griffey Jr. went 2-for-3 to extend his hitting streak to five games (9-for-19, .474). He bunted up the third-base line for a single in the third inning.
- Reds 1B Scott Hatteberg went 0-for-4, extending his season-high hitless streak to 16 at-bats.
- LHP Scott Schoeneweis pitched the seventh in his first appearance for the Reds since being acquired from Toronto on Wednesday.