The Cubs, who had scored only 25 runs in their past 10 home games, moved Castro to the leadoff spot after dropping him to eighth Tuesday, and gave Rizzo his first career start batting second.
Castro went 1 for 5 in his fourth game of the year hitting first. Rizzo was 3 for 4 and was tagged between third and home on a Brian Bogusevic base hit to end the game.
Rizzo’s first homer gave the Cubs a 1-0 lead in the first.
Washington took a 3-1 lead in the second inning, scoring on Kurt Suzuki’s two-run single and on Ohlendorf squeeze bunt.
The Nationals broke the game open on Werth’s drive, which came after Ryan Zimmerman singled and Bryce Harper walked. Werth hit a 3-0 pitch into the seats in left for his 18th homer of the season and a 6-1 lead.
The Cubs rallied in the fifth for five runs and seven hits, including six straight, to tie the game and chase Ohlendorf.
Rizzo hit a towering drive into the right-field bleachers for his second homer of the night, cutting the Washington lead to 6-3.
Castro reached on a fielder’s choice before Rizzo’s homer, which gave him his fourth multi-homer game of his career and the second of August, after hitting two against the Dodgers on Aug. 1.
Ohlendorf then allowed Junior Lake to single and was replaced by Roark, who gave up run-scoring singles to Donnie Murphy and Cole Gillespie, before Welington Castillo’s sacrifice fly to center tied the game.
With two outs in the seventh, Hairston lined a 1-2 pitch into the seats for his three-run homer and ninth of the season. Russell had gotten the first two outs of the inning before Harper doubled and Werth was intentionally walked.
Washington added two runs in the eighth on an RBI triple by Denard Span and a single from Zimmerman, to give the Nationals their most runs since scoring 14 against the Mets on July 28.