Haren (8-11) surrendered just one run on five hits in six innings. The right-hander, who recorded a fourth win in five starts, didn't issue a walk and struck out six.
Drew Storen and Tyler Clippard each hurled a scoreless relief inning and Rafael Soriano carded his 32nd save despite allowing a run in ninth as the Nationals rebounded from an 11-1 loss in Monday's four-game series opener.
Chicago's Chris Rusin (2-3) coughed up 10 hits but just two runs in 5 2/3 innings to take the loss.
Brian Bogusevic and Donnie Murphy each socked a solo homer for the Cubs.