Colorado has lost the first four games of a nine-game road trip.
Zimmermann (10-3) gave up six hits, walked one and struck out nine in his eight-inning performance. The only run he allowed was unearned due to a throwing error by second baseman Anthony Rendon that allowed Josh Rutledge to reach third. Rutledge then scored on a single by D.J. LeMahieu.
The Washington starter produced his sacrifice fly in the sixth inning to give the Nationals a 5-0 lead. He improved to 12-0 in his last 20 home starts.
Roy Oswalt (0-1), who signed with Colorado last month, made his season debut and took the loss.
Oswalt, in his 13th major league season, had made five appearances with Colorado's Class AA team in Tulsa before being brought up to the Rockies. He struck out 11 over just five innings, but allowed four runs on nine hits.