Cahill (2-2) threw 66 of his 94 pitches for strikes and held Washington to six hits while issuing only one walk and striking out five.
Justin Upton went 2-for-4 with a pair of RBI while Miguel Montero and John McDonald each added two hits and an RBI for the Diamondbacks, who won for the fourth time in five contests on their current 10-game road trip.
The Nationals' Jordan Zimmerman (1-2) absorbed the loss, yielding four runs (three earned) on eight hits over 6 1/3 frames.
Ian Desmond collected the lone RBI for Washington, which dropped its fifth straight.
Toddler uninjured after being knocked over by Obama family dog
Man spent 15 hours in jail for plugging electric car into an outlet at a school