The Nationals, who snapped a nine-game losing streak to Atlanta on Wednesday, allowed their NL East rivals to get only three runners in scoring position over two nights and split the four-game series.
Haren (3-3) won his second consecutive start, giving up four hits and one run with one walk and four strikeouts.
Rafael Soriano earned his ninth save in 10 chances by pitching the ninth. He retired Justin Upton and Freddie Freeman on groundouts before Evan Gattis singled and Dan Uggla popped up.
Washington got off to a good start in the first off Kris Medlen, breaking its 15-game streak without a first-inning run when Span led off with a double, advanced to third on a wild pitch and scored on Steve Lombardozzi’s RBI single.
Adam LaRoche doubled and rookie Anthony Rendon singled to start the second. With two outs, Span doubled past third baseman Chris Johnson on a play that was originally scored an error and later changed to a hit.
Medlen (1-4) lost his third straight start, allowing seven hits, three runs and three walks in seven innings. He struck out eight.
Haren shook off his 7.31 career ERA in three career starts at Turner Field to win consecutive starts for the first time since signing as a free agent with the Nationals last winter.
Haren had the Braves guessing all night until Uggla’s fifth homer cut the lead to 3-1 with two out in the seventh.
Needing just 13 pitches to get through the first two innings, Haren didn’t allow a hit until Freeman’s two-out single in the fourth. Haren made just 69 pitches through the seventh.
Of Atlanta’s three runners in scoring position the last two games, two of them — Medlen and Paul Maholm — were pitchers.
Span went 3-for-4 with a walk. He snapped an 0-for-41 skid that the Nationals had this season against the Atlanta bullpen when he singled off Jordan Walden in the ninth.
NOTES: Braves LF Justin Upton was chosen as NL player of the month for April. ... Gattis was picked as NL rookie of the month. ... Nationals LF Bryce Harper had X-rays on his left shoulder before the game. He left Wednesday’s win over the Braves in the sixth soon after wincing on a check swing. The X-rays were negative and Harper was diagnosed with a bruise under his left shoulder blade. He went 0-for-4 with a ninth-inning walk. ... Washington RF Jayson Werth went 0-for-2 and left for pinch-hitter Roger Bernadina in the fifth. Werth returned to the lineup after missing two straight games with a strained right hamstring and a bruised left ankle. ... Bernadina dropped to 1-for-21 this season when he struck out in the seventh and ninth, stranding a combined three runners in scoring position.