The Phillies dropped two games behind the Mets in the NL East. New York rallied to beat Milwaukee 4-2.
The only two hits given up by Redding (10-8) came in the sixth, before he was lifted for a reliever. Redding allowed three runs in 5 2-3 innings. He hit two batters.
Redding's 10 wins is a career high, and he is the first Washington pitcher to reach the mark since Ramon Ortiz did so in 2006.
Jimmy Rollins hit a solo home run, his 10th of the season, in the ninth for the Phillies.
Kyle Kendrick (11-8) got the loss, allowing six runs on eight hits in four innings.
While Redding held the Phillies hitless, the Nationals' offense quickly built its lead.
Lastings Milledge got things started with a two-run single in the first inning. In the fourth, Willie Harris hit an RBI triple, Cristian Guzman scored him with a double, and Zimmerman capped things off with a mammoth homer to center field.
The first hit against Redding came with one out in the sixth inning, when Shane Victorino beat out the throw on a grounder deep in the hole to shortstop. That was the start of a mini-meltdown for the Nationals.
With two out, Victorino stole second and advanced on an error by catcher Jesus Flores. Ryan Howard then doubled, sending Victorino home. Redding walked Jayson Werth and was relieved by Charlie Manning.
Philadelphia didn't need any more hits - Manning walked two to load the bases, and reliever Marco Estrada came on. Estrada didn't do much better. He walked pinch-hitter Pat Burrell to drive in one run, then hit Chris Coste to send home another. Estrada finally got out of the inning, striking out pinch-hitter Carlos Ruiz.
Both teams had control issues, especially early in the game. Redding hit Chase Utley in the first inning and Victorino in the third. Elijah Dukes was hit by Kendrick in the first and Happ in the fourth. When Kendrick threw a ball up-and-in to Zimmerman in the third inning, home plate umpire Bruce Dreckman warned both dugouts.
The Nationals added an insurance run on Flores' RBI double in the seventh inning.