Arizona has lost five straight, the last three to Washington, two by a single run. Twice this series the Diamondbacks hit a game-tying home run in the final innings only to see the Nationals ultimately end up with the victory.
"Of course it's disappointing," Diamondbacks manager Kirk Gibson said. "They've got it rolling and they overtook us again tonight."
The Diamondbacks tied it in the eighth on Ender Inciarte's two-run homer against reliever Tyler Clippard. Arizona also left a runner at third base in the inning before losing in the ninth.
Harper opened the ninth with a single off Evan Marshall (4-3) and went to third base on Kevin Frandsen's one-out single. Out of the starting lineup for the first time in 63 games, Rendon singled past third baseman Cliff Pennington to win it.
"Last at bat — it's definitely a game of inches," Marshall said. "The game plan was to go in there and attack (Rendon), try to force a ball on the ground, double play or at least get a guy in a rundown. He worked his hands inside the ball and kept it fair just right up the line. Nothing we can do about it."
Arizona fell to 5-13 in August and 1-5 against Washington this season.
Cahill allowed two runs and six hits over 6 1-3 innings.
"It's tough," Cahill said. "They're a real good team. Two out of the three games I think we've battled them. We've shown that we can play with anybody."
Five of Washington's last six victories have been by a single run, with four coming in its last at-bat. The Nationals last won nine in a row when they matched a franchise record by winning 10 straight in June 2005.
The NL East leaders also extended their home win streak to eight and opened up a seven-game lead over Atlanta.
Rafael Soriano (3-1) pitched the ninth.
Wilson Ramos' RBI groundout in the second inning gave the Nationals a 1-0 lead. Asdrubal Cabrera and Jayson Werth hit consecutive doubles to put Washington up 2-0 in the sixth.
Harper had three of Washington's nine hits.
Diamondbacks: In his fourth rehab appearance, Daniel Hudson tossed one scoreless inning with two strikeouts Tuesday night in the Arizona Rookie League. The right-hander hasn't pitched at the major league level since 2012 after suffering an elbow injury that resulted in two Tommy John surgeries. Gibson said he received a "good report" on Hudson's outing, adding that the pitcher threw in the 93-95 miles per hour range.
Inciarte had two hits one night after his Diamondbacks' rookie record 18-game hitting streak ended
Members of the Diamondbacks organization including 3B Cliff Pennington and starter Chase Anderson visited patients at the Walter Reed National Military Medical Center in nearby Bethesda, Maryland earlier on Wednesday.