Haren (10-14), the former Diamondbacks pitcher who signed a one-year, $13 million deal with the Nationals and struggled mightily for much of the season, struck out five and walked one.
The 33-year-old right-hander, a free agent at the end of the season, was 6-2 in his last 12 starts.
Brandon McCarthy (5-11) gave up two runs on five hits in seven innings.
With the loss, Arizona fell to 80-81, the first time the Diamondbacks have been under .500 all season.
Arizona threatened against Rafael Soriano in the ninth. Paul Goldschmidt flied out to deep center, then Martin Prado singled and Miguel Montero walked. A wild pitch advanced the runners to third and second, but Soriano struck out Matt Davidson and retired Chris Owings on a fly ball for his 43rd save.
Drew Storen threw a scoreless eighth as the third link of the shutout.
Denard Span and Chad Tracy scored the game's only runs.
Span tripled to the right-field corner leading off the sixth and scored when Ryan Zimmerman grounded out.
In the seventh, Tracy hit a solo shot that landed on the far side of the swimming pool in right field and bounced back into the water.
Meanwhile, Arizona didn't do much against Haren, with all four of its hits coming with two outs.
McCarthy had a solid final outing in an injury-plagued season but got no offensive support from the Diamondbacks, who lost their fourth straight.
The right-hander retired the first 11 batters before Jayson Werth singled.
The game whizzed by in 2 hours, 25 minutes.
The Diamondbacks need to win the series finale on Sunday to finish 81-81, the same record they had a year ago.
Sunday's game will be the last for 70-year-old Davey Johnson as Washington manager. He is retiring after three decades in the majors as player and as a manager who directed four teams to the playoffs, including the Nationals.
NOTES: After the game, Johnson said he had scratched RHP Gio Gonzalez from Sunday's start and would go with Tanner Roark (7-1, 1.74). LHP Wade Miley (10-10, 3.63) goes for Arizona. ... Goldschmidt extended his career-best hitting streak to 18 games. Goldschmidt fell into a tie for the NL lead in homers when Pedro Alvarez of Pittsburgh hit his 36th on Saturday.
Follow Bob Baum at www.twitter.com/Thebaumerphx