Zimmerman's eighth inning single drove in Span for the go-ahead run as the surging Nationals capped a strong weekend with a 2-1 win over the Cubs on Sunday.
The expected pitcher's duel took place as Zimmermann outdueled Jake Arrieta over six innings and left with a 1-0 lead.
''The starter for them today was as advertised, tough,'' Zimmerman said of Arrieta. ''The way Jordan pitched, that was a game we needed to win.''
The Cubs tied it in the seventh on Starlin Castro's sacrifice fly against Drew Storen.
Span's hustle turned a soft hit to right field off Pedro Strop (1-4) into a double leading off the eighth. The Cubs challenged the play, but replay showed that the sliding Span avoided the tag.
''The fact that he broke out of the box hard and thought two (bases) from the beginning of it was key for us,'' Nationals manager Matt Williams said.
Two outs later, the Cubs intentionally walked Adam LaRoche to bring up Zimmerman, who ripped a single to left to score Span from second.
Tyler Clippard (6-2) worked out of trouble in the eighth inning. Rafael Soriano pitched the ninth and earned his 21st save for the Nationals, who have won seven of eight.
Washington moved within one-half game of NL East-leading Atlanta.
The Nationals took two of three games in the series, including 13-0 on Saturday to break Chicago's four-game winning streak.
Zimmermann allowed seven hits with one walk and struck out five. He has given up two earned runs or fewer in seven straight starts. The right-hander is 3-2 with a 1.26 ERA in that span.
''I think he found his slider,'' Williams said. ''Gives him another weapon.''
The Cubs had at least one hit in each of the first six innings, but couldn't generate a clutch one versus Zimmermann. Chicago left 12 runners on base and went 1 for 9 with runners in scoring position.
''I fell behind hitters and wasn't able to throw first-pitch strikes,'' Zimmermann said. ''Guys got on base, and I had to work out of a few jams. Other than that I threw the ball well.''
Following this weekend's blockbuster trade that sent starters Jeff Samardzija and Jason Hammel to the Oakland A's, Arrieta inherited the No. 1 role in the Cubs rotation. He has pitched to that level lately.
The righty won his four previous starts and flirted with no-hitters in his last two. Arrieta carried a perfect game into the seventh inning on June 24 against Cincinnati and went 7 2-3 innings without allowing a hit at Boston on June 30.
Washington ended such hopes immediately. Span hit a fly ball that sailed over the outfielders for a double leading off the first. One out later he scored on Jayson Werth's groundout for a 1-0 lead.
Arrieta allowed four hits and one run over six innings with three walks and five strikeouts. He gave up two singles to open the fifth, but escaped the jam. Zimmermann struck out while attempting to bunt the runner over.
''It was a dogfight,'' Arrieta said. ''I really had to grind it out there. I had guys on base. I had to make pitches in big situations. I was able to do that.''
Storen entered having allowed only three earned runs this season and only one in 17 appearances since May 17.
The Cubs threatened in the eighth, putting runners at second and third with one out against Clippard, but didn't score. Pinch-hitter Wellington Castillo struck out looking, and Ryan Sweeney grounded out.
Justin Ruggiano, Anthony Rizzo, and John Baker all had two hits for the Cubs.
NOTES: The Cubs recalled RHP Blake Parker from Triple-A Iowa before the game. Parker takes the roster spot created by the trade with Oakland. ... Chicago hasn't announced who will replace Samardzija and Hammel when their rotation spots come up Wednesday and Thursday. Edwin Jackson (5-8, 4.99) will open the five-game series at Cincinnati on Monday against fellow RHP Mike Leake (6-7, 3.47). ... Nationals RHP Stephen Strasburg (7-6, 3.53) will face RHP Chris Tillman (7-4, 4.21) on Monday when Baltimore visits Washington.